Невозможно отправить электронное письмо с php-сайта GoDaddy. - PullRequest
0 голосов
/ 08 мая 2018

Я опробовал решения из топ-10 вопросов о переполнении стека и других ресурсов, найденных в Интернете, прежде чем публиковать мой вопрос здесь;

У меня есть php-сайт, размещенный на GoDaddy, который пытается отправить электронную почту на 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 голосов
/ 07 августа 2019

Обычная почтовая почта php ($ to, $ subject, $ message, "From: email@address.com");отправка в папку нежелательной почты Gmail не достигает учетной записи Office365

Я полагаю, что причина, по которой эта папка попадает в папку нежелательной почты в Gmail, заключается в том, что сообщения электронной почты, отправляемые через функцию mail () PHP через GoDaddy, не аутентифицируются.Я также попытался использовать записи SPF для решения этой проблемы, но это не удалось.

Вот обходной путь, который может вас заинтересовать, если у вас есть учетная запись Gmail.

Требования: учетная запись Gmail, XAMPPили аналогичный локальный веб-сервер, библиотека 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. Письма отправляются быстрее .По какой-то причине электронные письма, которые я отправлял через GoDaddy с помощью функции PHP mail (), заняли несколько минут.Gmail занимает несколько секунд.
  3. Копии электронных писем, которые вы отправляете, отображаются в папке «Отправленные».Это также было то, чего я не смог достичь с помощью GoDaddy, и мне сообщили в службу поддержки, что это ограничение сервиса.
...