【问题标题】:Mail, can't send to same email邮件,无法发送到同一邮箱
【发布时间】:2012-06-29 05:27:38
【问题描述】:

出于某种奇怪的原因,如果用户尝试向自己发送电子邮件,成功函数会运行但用户从未收到电子邮件。 如果$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 . '"}';
}

【问题讨论】:

    标签: php email header


    【解决方案1】:

    排除 mail() 函数中的标题并尝试一下。标题正在触发 GMail 的过滤系统。如果邮件是从 Gmail 发送的,则会有一个特定的基于域密钥的身份验证来验证发件人的身份。

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

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

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

    【讨论】:

    • 为什么会发生这种情况?当fromAdresstoAddress 不同时,它可以正常工作。我实际上并没有代表谷歌发送,电子邮件来自服务器。
    • support.google.com/a/bin/answer.py?hl=en&answer=174124 对于使用 Gmail 发送的邮件,Gmail 使用基于域密钥的身份验证来验证发件人。您是否尝试在标头字段中不发送任何内容。这对我有用
    • 这不是确切的原因,但你带领我走上赛道看看为什么会这样。我可以从同一个域发送电子邮件,它遇到的唯一问题是两封电子邮件是否匹配,它会被电子邮件系统过滤掉。虽然它通过了 hotmail 的检测,但它被添加到了垃圾箱中。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 2016-03-21
      • 2022-01-11
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2017-04-30
      • 2013-04-03
      相关资源
      最近更新 更多