在这里发布我的问题之前,我已经尝试了前 10 个堆栈溢出问题和其他在线资源的解决方案;
我有一个托管在GoDaddy上的php网站,它试图向Office365发送电子邮件(尽管发送到我的gmail时也存在相同的缺陷(。最初开发 3 年前时,它会发送电子邮件没有问题,去年的某个时候它停止发送电子邮件。
曾经工作的原始代码
$admin_email = "email@domain.com";
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
$message = 'FROM: ' . $email . "rn" . $message;
mail($admin_email, "New Message", $message, "From:" . $admin_email);
我还尝试使用PHPMailer和各种选项。
这两个不会出错,但我从未收到电子邮件。
$mail = new PHPMailer;
$mail->Host = "relay-hosting.secureserver.net";
$mail->Port = 25;
$mail->SMTPDebug = 0;
$mail->SMTPSecure = "none";
$mail->SMTPAuth = false;
$mail->Username = "";
$mail->Password = "";
$mail->SMTPDebug = 0;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->ssl = false;
$mail->authentication = false;
这个扔了SMTP -> ERROR: Failed to connect to server
$mail = new PHPMailer;
$mail->SMTPDebug = 2;
$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
全部发送
$mail->From = $from;
$mail->FromName = $admin_email;
$mail->AddAddress($email);
$mail->Subject = "New Message";
$mail->Body = $message;
$mail->IsHTML(true);
$mailresult = $mail->Send();
我还确保该域具有以下txt记录
NETORGFT1413837.onmicrosoft.com
v=spf1 include:spf.protection.outlook.com -all
v=spf1 include:secureserver.net -all
是的,我检查了垃圾/垃圾邮件文件夹
发送到 gmail 垃圾文件夹的常规 php 邮件程序mail($to,$subject,$message,"From:email@address.com");
未到达 Office365 帐户
常规的 php 邮件邮件($to,$subject,$message,"From:email@address.com"(; 发送到 Gmail 垃圾邮件文件夹未到达 Office365 帐户
我相信这进入Gmail中的垃圾邮件文件夹的原因是因为通过GoDaddy通过PHP的mail((功能发送的电子邮件未经身份验证。我也试图利用SPF记录来解决这个问题,但没有成功。
如果您有 Gmail 帐户,您可能会对此感兴趣。
要求: Gmail帐户,XAMPP或类似的本地Web服务器,PHPMailer库 (关于如何使用XAMPP和PHPMailer的教程在网上大量可用(
指示:
-
转到Gmail帐户中的"设置"。在"帐号和导入"下, 在"用这个地址发送邮件"部分添加"youraccount@domainyouown.com"。
-
在 PHP 脚本(使用 PHPMailer 库(中,将以下代码行中的凭据替换为您的 Gmail 凭据和您要从中发送邮件的帐户:
$mail->Username = 'username@gmail.com'; $mail->Password = 'yourpassword'; $mail->setFrom('youraccount@domainyouown.com', 'Your Name'); $mail->addReplyTo('youraccount@domainyouown.com', 'Your Name');
此方法的其他好处:
- 电子邮件经过身份验证。我花了相当长的时间试图通过GoDaddy实现这一目标,但无济于事。这消除了有时通过托管服务器中继发送的电子邮件中存在的"可能的垃圾邮件"通知......
- 电子邮件发送速度更快。无论出于何种原因,我使用 PHP 的 mail(( 函数通过 GoDaddy 发送的电子邮件需要几分钟才能完成。Gmail只需几秒钟。
- 您发送的电子邮件的副本实际上会显示在您的Gmail"已发送"文件夹中。这也是我无法通过 GoDaddy 实现的,客户支持告诉我这是服务的限制。