无法从 GoDaddy 托管的 php 站点发送电子邮件



在这里发布我的问题之前,我已经尝试了前 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的教程在网上大量可用(

指示:

  1. 转到Gmail帐户中的"设置"。在"帐号和导入"下, 在"用这个地址发送邮件"部分添加"youraccount@domainyouown.com"。

  2. 在 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');
    

此方法的其他好处:

  1. 电子邮件经过身份验证。我花了相当长的时间试图通过GoDaddy实现这一目标,但无济于事。这消除了有时通过托管服务器中继发送的电子邮件中存在的"可能的垃圾邮件"通知......
  2. 电子邮件发送速度更快。无论出于何种原因,我使用 PHP 的 mail(( 函数通过 GoDaddy 发送的电子邮件需要几分钟才能完成。Gmail只需几秒钟。
  3. 您发送的电子邮件的副本实际上会显示在您的Gmail"已发送"文件夹中。这也是我无法通过 GoDaddy 实现的,客户支持告诉我这是服务的限制。

最新更新