邮件,无法发送到同一封电子邮件

时间:2012-06-25 02:20:08

标签: php email header

由于某些奇怪的原因,如果用户尝试向自己发送电子邮件,则会运行成功函数,但用户永远不会收到电子邮件。 如果$toAddress$fromAddress相同,则用户永远不会收到该电子邮件。如果他们与用户不同。

此处已阅读了几个问题,并说如果电子邮件与服务器位于同一个域,则会阻止垃圾邮件。但是用户电子邮件与服务器不在同一个域中?用我的Gmail帐户测试了这个。 Reply-to不是我实际使用的电子邮件,它只是简单的文字。

$to = $toAddress;
$subject = 'This is an email';
$message = $message;
$headers = 'From: '. $fromAddress . "\r\n" .
    'Reply-To:do-not-reply@gmail.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion() . "\r\n" .
    'MIME-Version: 1.0' . "\r\n" .
    'Content-Type: text/html; charset=UTF-8';

if(mail($to, $subject, $message, $headers)){
    echo '{"status": "success", "senderAddress": "' . $_SERVER['REMOTE_ADDR'] . '", "content": "' . $_POST['toAddress'] . '"}';
} else {
    echo '{"status": "fail", "toAddress": ' . $toAddress . '", "fromAddress": "' . $fromAddress . '"}';
}

2 个答案:

答案 0 :(得分:1)

排除mail()功能中的标题并进行尝试。标题正在触发GMail的过滤系统。如果从Gmail发送邮件,则会有一些基于域密钥的身份验证,用于验证发件人的身份。

您可能需要创建包含此文本的TXT DNS记录:

v=spf1 include:_spf.google.com ~all

在您的DNS服务器中,授权您的域名发送电子邮件。

答案 1 :(得分:0)

由于过滤系统包含Gmail和Hotmail,当您将自己用作接收器时,它将直接转换为Gmail和Hotmail中的垃圾邮件。对于Gmail,如果两个值不同,它将进入您的收件箱,而Hotmail仍会将其视为垃圾邮件。