无法从GoDaddy托管的php网站

时间:2018-05-08 18:24:07

标签: phpmailer

我在网上找到了前10个堆栈溢出问题和其他资源的解决方案,然后在这里发布我的问题;

我有一个在GoDaddy上托管的php网站试图向Office365发送电子邮件(虽然在发送到我的Gmail时会出现相同的缺陷)。最初开发3年前,它会发送电子邮件没问题,去年某个时候它停止发送电子邮件。

以前使用的原始代码

    $admin_email = "email@domain.com";
    $email = $_REQUEST['email'];
    $message = $_REQUEST['message'];
    $message = 'FROM: ' . $email . "\r\n" . $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

是的,我检查了垃圾/垃圾邮件文件夹

常规php邮件程序mail($to,$subject,$message,"From:email@address.com");发送到gmail垃圾文件夹并不能访问Office365帐户

1 个答案:

答案 0 :(得分:0)

  

常规php邮件($ to,$ subject,$ message,“发件人:email@address.com”);发送到gmail垃圾文件夹无法访问Office365帐户

我认为将其转到Gmail中的垃圾文件夹的原因是,未验证通过PHP的mail()函数通过GoDaddy发送的电子邮件。我还尝试利用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实现的,客户支持人员告诉我这是服务的局限性。