0

我一直遇到一些问题,因为电子邮件没有到达某些地址,或者更具体地说,一些域(例如 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 整个事情,但这并没有改变任何东西。

问候!

4

3 回答 3

0

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

于 2012-12-05T09:19:41.747 回答
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';
于 2012-12-03T13:03:02.963 回答
0

听起来您的电子邮件被某些服务器识别为垃圾邮件,这可能意味着它们最终进入垃圾邮件箱或被阻止一起发送(在更无情的接收者上)。还是您绝对肯定他们首先被发送?如果可以,请检查您的日志。

无论如何,您可以做一些事情来减少您的电子邮件被识别为垃圾邮件的机会:

  • 完全充实标题,例如:

    $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...
    
  • 确保电子邮件和服务器域中的邮件发件人域匹配

  • 正确使用内容类型属性

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

我还建议不要使用 PHP 邮件功能,尝试使用 swift mailer 或 PHPMailer,或者四处寻找适合您需要的。

于 2012-12-03T13:03:21.257 回答