我知道这个问题已被提出,但我花了好几个小时试图解决问题而不做任何改变。我使用PHPMailer发送的所有电子邮件都被hotmail / outlook帐户视为垃圾邮件。我没有gmail或yahoo这个问题。但前景似乎非常严格......
我的网站存储在Ex2 Hosting共享服务器上。使用https://mxtoolbox.com/我没有看到服务器可能被列入黑名单的迹象。
DKIM和SPF认证均已激活。并且在标题和html / body部分都有取消订阅链接。
当我使用https://www.mail-tester.com/进行测试时,SpamAssassin检测到的唯一问题是' MISSING DATE'。即使我在标题中设置当前日期(参见下面的代码)。
非常感谢任何想要帮助我的人:)
这是我的代码:
date_default_timezone_set('Europe/Paris');
$dt = new Datetime('now');
$mail = new PHPMailer(true);
try {
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'my.shared-server.com';
$mail->SMTPAuth = true;
$mail->Username = 'contact@myfirm.com';
$mail->Password = 'MYPASSWORD';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->ReturnPath = 'contact@myfirm.com';
$mail->setFrom('contact@myfirm.com', 'My Firm');
$mail->addAddress($recipient, '');
$mail->addReplyTo('contact@myfirm.com', 'My Firm');
$mail->addCustomHeader('List-Unsubscribe', '<mailto:postmaster@myfirm.com?subject=Unsubscribe>, <https://www.myfirm.com/unsubscribe>');
$mail->MessageDate = $dt->format('Y-m-d H:i:s T');
$mail->CharSet = 'UTF-8';
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = '<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
/* css code */
</style>
<title>My Firm</title>
<meta name="description" content="An email from My Firm">
<link href="https://fonts.googleapis.com/css?family=Raleway:200,300,400,500,600,700,800" rel="stylesheet">
</head>
<body>
<p>$message_html</p>
</body>
</html>';
$mail->AltBody = $message_text;
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Error';
}