【发布时间】:2023-03-27 01:53:01
【问题描述】:
我正在使用 PHPMailer 从我的 PHP 脚本发送经过 SMTP 身份验证的电子邮件。 PHPMailer 脚本可以正常工作,它不会引发任何错误,并且我会收到我的测试电子邮件,但是它们仍然在我的 gmail 收件箱中被标记为未经过身份验证。 (用小问号图标显示)。
这是我的代码:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require './PHPMailer/src/Exception.php';
require './PHPMailer/src/PHPMailer.php';
require './PHPMailer/src/SMTP.php';
$mail = new PHPMailer(TRUE);
try {
$mail->setFrom('noreply@mydomain.com', 'My Domain');
$mail->addAddress('me@gmail.com', 'Me');
$mail->Subject = 'PHPMailer Test Message';
$mail->isHTML(TRUE);
$mail->Body = 'Test email';
/*SMTP settings*/
$mail->isSMTP();
$mail->Host = 'smtp.ionos.co.uk';
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = 'tls';
$mail->Username = 'noreply@mydomain.com';
$mail->Password = 'myPassword';
$mail->Port = 587;
if(!$mail->send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
}
catch (Exception $e)
{
echo $e->errorMessage();
}
catch (\Exception $e)
{
echo $e->getMessage();
}
?>
有人知道为什么这封电子邮件仍然被标记吗? 我使用的是 PHPMailer 6.1,服务器运行的是 PHP 7.4
【问题讨论】:
-
您的域上是否正确设置了 SPF 和 DKIM? (即
smtp.ionos.co.uk是否实际上被授权代表noreply@mydomain.com发送邮件?)请记住,SMTP 允许 任何人 像其他任何人 发送电子邮件,这就是 SPF+DKIM 的原因在今天非常重要:不仅对于垃圾邮件,而且对于防止网络钓鱼也是如此。 -
嗯,我希望因为电子邮件和域由同一提供商托管,我将被授权发送电子邮件,但我会检查 SPF+DKIM。谢谢!
-
您有权发送电子邮件,问题就在于此;每个人都被授权以任何人的身份发送电子邮件,接收服务器尝试使用 SPF 和 DKIM 设置验证发件人的身份。如果没有设置,任何人都可以使用您的电子邮件地址作为“FROM”标题。