我有一个每天发送电子邮件的应用程序。我正在使用 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帐户发送的电子邮件视为垃圾邮件。
答案 0 :(得分:1)
您不能简单地使用随机邮件地址并希望它有效。垃圾邮件对策可以检查发送服务器是否实际上被允许从该地址发送邮件。谷歌关于“域密钥”或“SPF”,以查看两种现有方法来验证邮件的发送。我假设您的服务器不允许从“@ gmail.com”域发送邮件,因此任何人都在做正确的事情,将这些邮件标记为垃圾邮件。
此外,垃圾邮件检测正在分析邮件内容。这可能也是单独配置的,因为每个人的垃圾邮件都不同。您声明“outlook.com”将您的邮件识别为垃圾邮件可能是因为您之前将邮件标记为垃圾邮件,看起来就像您现在发送的垃圾邮件。另一个帐户可能会将此邮件视为有效。
如果接收邮件服务没有通知收件人此邮件被标记为垃圾邮件的原因,那么您根本无法做到。但这不是SwiftMailers的错误,也不是与你的设置有关。