电子邮件未使用PHP邮件到达()

时间:2012-12-03 12:52:27

标签: php email

我一直有一些麻烦,电子邮件没有到达某些地址,或者更具体,所以有些域名(例如gmx.com)。但是,电子邮件会在某些域上到达(例如spray.se或gmail.com)。

我已经检查过,我们的服务器IP似乎都很好。在任何地方都找不到任何街区。

我的代码有任何严重问题吗?

$mail_body = "Välkommen till ***!\n\nOm du ej registrerat dig på *** ber vi dig bortse från\ndetta mail.\n\nDin aktiveringskod är:\n" . $activation . "\n\nMvh\nVi på ***"; // Mail body
$subject = "Din aktiveringskod";
$header = "From: *** <no-reply@***.se>\r\n";

ini_set('sendmail_from', 'no-reply@***.se'); // Snabbfix på problem med IIS (5+?)

if(!mail($recipient, $subject, $mail_body, $header)) die ("mail error");

如果电子邮件已发送,则表示没有错误!

我也尝试过utf8-encode整个过程,但这并没有改变任何东西。

问候!

3 个答案:

答案 0 :(得分:0)

你的标题应该是这样的

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers.='From: *** <no-reply@***.se>\r\n';

答案 1 :(得分:0)

听起来有些服务器将您的电子邮件识别为垃圾邮件,这可能意味着它们最终会出现在spambox中,或者被阻止一起交付(在更无情的接收器上)。或者你绝对肯定他们是第一个被送到的?如果可以,请检查您的日志。

无论如何,您可以采取一些措施来减少将电子邮件识别为垃圾邮件的可能性:

  • 完全充实标题,例如:

    $headers .= "Reply-To: The Sender <sender@sender.com>\r\n";
    $headers .= "Return-Path: The Sender <sender@sender.com>\r\n";
    $headers .= "From: The Sender <senter@sender.com>\r\n";
    $headers .= "Organization: Sender Organization\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=utf-8\r\n";
    etc...
    
  • 确保电子邮件中的邮件发件人域名&amp;服务器域匹配

  • 正确使用内容类型属性

您还可以仔细检查您的服务器是否未列入黑名单,但听起来您还是这样做了。

我还建议不要使用PHP邮件功能,尝试使用swift邮件程序或PHPMailer,或者搜索并找到适合您需求的邮件。

答案 2 :(得分:0)

问题根本与该主题无关。导致此问题的是DNS错误。