Я пытаюсь использовать PhpMailer на управляемом сервере (у меня есть только доступ через cPanel), и я получаю эту ошибку:
SERVER -> CLIENT: CLIENT -> SERVER: EHLO stefanomenci.com SERVER -> CLIENT: HTTP/1.1 301 Moved [...] SMTP ERROR: EHLO command failed: HTTP/1.1 301 Moved
Это сценарий:
require ("/path/to/class.phpmailer.php"); $mail = new PHPMailer(); $mail->SMTPDebug = 2; $mail->IsSMTP(); $mail->Host = "mydomain.com"; $mail->Port = 2096; $mail->SMTPAuth = true; $mail->Username = "name@mydomain.com"; $mail->Password = "****"; $mail->From = "name@mydomain.com"; $mail->FromName = "Name"; $mail->AddAddress("myaddress@gmail.com"); $mail->WordWrap = 50; $mail->IsHTML(true); $mail->Subject = "Subject"; $mail->Body = "y<b>a</b>y"; $mail->AltBody = "yay"; $mail->Send();
Если порт ошибочен, он немедленно сбой «не подключается к серверу».
Если порт отсутствует, он говорит: «Пожалуйста, включите аутентификацию SMTP в своем почтовом клиенте или войдите на сервер перед отправкой вашего сообщения».
Если порт верен, он ждет 10 секунд и показывает ошибку, показанную выше, независимо от имени пользователя и пароля.
Удаление $mail->IsSMTP()
работает, но часто письма направляются прямо в папку спама.
Я нашел много сообщений о подобной проблеме с PhpMailer, но они обычно используют Google вместо mydomain.com, и у них никогда не появляется это сообщение об ошибке.
Используйте порт 25 или 465, как указано выше. На порту 2096 работает веб-сервер, как мы видим в соединении (SERVER -> CLIENT: HTTP / 1.1 301 Moved).