0

我有一个每天发送电子邮件的应用程序。我正在使用SwiftMailer PHP 库和 SMTP 帐户。

我向以下提供商发送了测试电子邮件,以查看电子邮件是进入收件箱还是垃圾邮件:

 - GMail   (OK - Inbox)
 - Yahoo   (OK - Inbox)
 - AOL     (OK - Inbox)
 - Outlook (FAIL - Junk)

现在我使用的代码:

    // init smtp transport
    if ($smtp_ssl !== false)
    {
        $transport = Swift_SmtpTransport::newInstance($smtp_host, $smtp_port, strtolower($smtp_ssl));
    }
    else
    {
        $transport = Swift_SmtpTransport::newInstance($smtp_host, $smtp_port);
    }

    // using login/password
    if($smtp_user !== false && $smtp_pass !== false){
        $transport->setUsername($smtp_user);
        $transport->setPassword($smtp_pass);
    }

    $mailer = Swift_Mailer::newInstance($transport);

    $status = $mailer->send($message);

我不明白为什么 Outlook 将其视为垃圾邮件。

现在我注意到的是,如果我的 SMTP 帐户来自我的服务器,例如:test@myserverdomain.com进入垃圾邮件,但如果我将 SMTP 帐户更改为test@gmail.com之类的东西,那么它会进入收件箱。

我的服务器域是否有问题,hotmail 将其视为垃圾邮件?

此外,如果我的 SMTP 帐户是test@gmail.com,现在 AOL 会将从此 SMTP 帐户发送的电子邮件视为垃圾邮件。

4

1 回答 1

1

您不能简单地使用随机邮件地址并希望它有效。垃圾邮件对策可能会检查发送服务器是否实际上被允许从该地址发送邮件。谷歌有关“域密钥”或“SPF”的信息,以查看两种现有的验证邮件发送的方法。我假设您的服务器不允许从“@gmail.com”域发送邮件,因此任何人都在做正确的事情,将这些邮件标记为垃圾邮件。

此外,垃圾邮件检测正在分析邮件内容。这也可能是单独配置的,因为每个人的垃圾邮件都是不同的。您说“outlook.com”将您的邮件识别为垃圾邮件可能是因为您之前将邮件标记为垃圾邮件,看起来就像您现在发送的邮件一样。其他帐户可能会将此邮件视为有效。

如果接收邮件服务没有告知收件人此邮件被标记为垃圾邮件的原因,那么您无能为力。但这不是 SwiftMailers 的错,也不是与您的设置有关。

于 2013-10-31T14:37:55.890 回答