Отказано в SMTP-соединении сервера PHPMailer GoDaddy
на днях я испытывал некоторые проблемы с моим сайтом GoDaddy. Я звонил в их техподдержку, и человек, с которым я говорил предположил, что мои проблемы были связаны с тем, что я был на Windows, и было бы лучше на Linux. Не имея на этот счет никакого мнения, я согласился, и меня перевели.
после этого перехода моя функциональность PHPMailer покинула меня. У меня это работает в течение нескольких месяцев, поэтому я знаю, что мои настройки точный. Я подтвердил с GoDaddy, что учетная запись, которую я пытаюсь отправить, не изменилась с их точки зрения. На стороне пользователя не было внесено никаких изменений (например, новый пароль). Суть в том, что единственное, что отличается, - это то, что мой сайт теперь размещен на сервере Linux. Вот и все.
поэтому я предполагаю, что мои трудности с PHPMailer должны быть связаны с этим, так как слишком много совпадений, что сценарий, который работал в течение нескольких месяцев, терпит неудачу в тот самый момент, когда происходит переход сервера. Но почему? Я провел час с их технической поддержкой, и они не видят ничего плохого в настройках сервера. Мы проверили мои настройки (просто для удовольствия). Все выглядит хорошо, но когда я отправляю электронное письмо, я получаю эту ошибку:
SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP Connect() failed.
есть много сообщений об этом типе ошибки, и почти все они относятся к людям, которые впервые настраиваются, которые неправильно ввели настройки или опустили настройки. Однако я знаю, что мои настройки завершены и точно, так как я успешно использую их в течение нескольких месяцев. Я опубликую их здесь только для полноты:
$mail = new PHPMailer();
$mail->IsSMTP(); //telling the class to use SMTP
$mail->isHTML(true);
$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
$mail->WordWrap = 50;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->Username = "example@email.com";
$mail->Password = *******;
$mail->Subject = "Test Email";
$mail->SMTPDebug = 1;
есть ли у кого-нибудь идеи, почему это может произойти? Есть ли какие-то настройки сервера, о которых люди технической поддержки могут не знать, например, в моем php.ini-файл? Парень, с которым я работал, сделал все возможное, чтобы помочь мне, но он может просто чего-то не знать.
любая помощь приветствуется. Дайте мне знать, если есть какая-либо другая информация, которую я могу обеспечивать. Спасибо!
EDIT: я также должен упомянуть некоторые из других попыток, которые я сделал. Я получаю тот же результат, несмотря ни на что.
1) TLS с портом 587 2) без SSL с использованием портов 25, 80 и 3535. 2) Мой собственный адрес gmail, изменяющий сервер, имя пользователя, пароль и т. д.
18 ответов
поскольку кажется, что это постоянная проблема, позвольте мне добавить свой собственный опыт.
наш сайт использует PHPMailer и сайт размещен на сервере GoDaddy linux. Параметры казалось чтобы быть правильным (в соответствии со всем, что я мог найти на SO и сайте поддержки goDaddy), были следующие:
SMTP_SERVER: smtpout.secureserver.net (or alternatively relay-hosting.secureserver.net)
SMTP_PORT: 465 //or 3535 or 80 or 25
SMTP_AUTH: true //always
SMTP_Secure: 'ssl' //only if using port 465
после тратить 6 + часов пробуя каждое изменение портов (25, 3535, 4655), серверы relay-hosting.secureserver.net,smtpout.secureserver.net: [порт], так далее.), имена пользователей, пароли и т. д. Я позвонил годэдди. Еще через 40 минут выяснилось, что:
1) учетные записи электронной почты "workspace" удаляются. Это важно, потому что если у вас есть учетная запись электронной почты с goDaddy сегодня, у вас, вероятно, есть учетная запись рабочей области. Это, по словам представителя технической поддержки, размещено отдельно от вашей учетной записи linux.
2) goDaddy движется в сторону учетных записей электронной почты cPanel. Ура! Таблица времени? "...в следующие 2-3 годы!"
3) я переместил наши учетные записи из рабочей области в учетные записи cPanel, пока я был на телефоне с представителем. Это очень легко сделать.
4) После изменения учетных записей электронной почты (включая редактирование записей MX) на электронную почту cPanel (против электронной почты "workspace") соответствующие настройки для электронной почты веб-формы с помощью PHPMailer:
SMTP_SERVER: localhost //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)
... и все остальное (как и выше) то же самое...
форму-я построен с PHPMailer прекрасно работал после эта перемена!
используйте cPaneL учетной записи электронной почты логин (имя пользователя) и пароль в настройке PHPMailer и ваши веб-письма будут работать без проблем!
дополнительный бонус-это веб-почта (кто-нибудь использует это больше?) можно получить доступ по адресу [yourdoman]\webmail. Нет больше загадочных url, чтобы помнить! И учетные записи могут быть IMAP или POP!
правда, это означает, что вы должны использовать учетные записи GoDaddy в cPanel и почтой, но получить форму для работы flawslessly с PHPMailer была настоящая награда!
Я на GoDaddy на Linux, как @surfbird0713. На моей 32-й попытке для меня также сработало следующее:
$mail2->Host = localhost;
//$mail2->SMTPAuth = false;
//$mail2->Username = 'xxxx@xxxxxx.com';
//$mail2->Password = '*******';
//$mail2->SMTPSecure = 'tls';
//$mail2->Port = 465;
Я ранее пытался с именем пользователя, логином, портом и т. д. Когда я прокомментировал все это, и просто пошел с localhost, это сработало.
Я испытываю эту проблему в течение многих недель. Наконец, все разрешилось.
Во-первых, я должен указать причины проблемы (как я ее испытал).
GoDaddy позволяет только порт 25
, 465
, 80
выйти. Таким образом, вы не можете связаться ни с одним SMTP-сервером, который не использует ни один из этих 3 портов.
Но если вы используете SMTP из GMAIL, например, или любой другой сервер воспроизведения (особенно из Bell Canada, на port 465
), то любой запрос реле от GoDaddy будет заблокирован-следовательно, вы увидите the Connection Refused (111)
. Да, они конкуренты в сфере хостинга... так что делайте свой собственный вывод о том, когда эта проблема будет решена между ними.
Хуже, когда вы отправляете электронное письмо от relay-hosting.secureserver.net
предоставленный GoDaddy, вы столкнулись с серьезным неудобством длительного ожидания, которое может занять пару минут, чтобы получить электронное письмо. Хуже того, люди с учетной записью электронной почты Bell Canada (или Bell affiliates) не будут видеть электронную почту с этого сервера ретрансляции - электронная почта даже не попадает в ваш спам-бокс! Как электронная почта полностью заблокирован Bell (их оправдание = слишком много спама от GoDaddy).
итак, недавно я сделал это, и это сработало хорошо для меня. Если у вас есть хостинг с GoDaddy, зарегистрируйте учетную запись электронной почты. Затем, используя эту учетную запись электронной почты, пример mywebmail@mydomain.com
, сделайте это с PHPMail:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtpout.secureserver.net";
$mail->Username = "mywebmail@mydomain.com"; /*Substitute with your real email*/
$mail->Password = "myverylongpassword"; /*Substitute with your real password*/
$mail->SMTPAuth = true;
$mail->Port = 80;
тогда делайте свои обычные PHPMailing вещи... Это отлично работает для меня. Надеюсь, и для тебя тоже.
после большого разочарования это также сработало для меня.
include("includes/class.phpmailer.php");
date_default_timezone_set('UTC');
define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);**
define('SMTP_USERNAME','me@aravindnc.com');
define('SMTP_PASSWORD','me123');
define('SMTP_AUTH',false);
$email = 'aravind_n_c@yahoo.co.in';
$firstName = 'Aravind';
$mail = new PHPMailerR();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = SMTP_AUTH;
$mail->Host = SMTP_HOST;
$mail->Port = 25;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
$mail->SetFrom(SMTP_USERNAME,'AravindNC.IN');
$mail->AddReplyTo(SMTP_USERNAME,"AravindNC.IN");
$mail->Subject = "Welcome to AravindNC.IN";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML('This is a test.');
$mail->AddAddress($email, 'Aravind NC');
$mail->Send();
?>
у меня такая же проблема, но я попытался это
$mail->SMTPAuth = false;
и имя хоста:relay-hosting.secureserver.net
и Bingoooooo его работа
пожалуйста, просто сделайте один раз этот параметр в SMTP
используя некоторые из советов выше, я смог получить готовый загрузочный сайт и работать с электронной почтой на общем хостинге на GoDaddy.
Я сделал вызов AJAX по электронной почте.php, который содержал:
<?php
require 'PHPMailerAutoload.php';
if ($_POST) {
$name = $_POST['contactName'];
$email = $_POST['contactEmail'];
$message = $_POST['contactMessage'];
/* Don't touch */
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "relay-hosting.secureserver.net";
$mail->SMTPAuth = false;
$mail->setFrom($email, $name);
/* end */
/* Configure the address the email will be sent to */
$mail->addAddress('administrator@stackchampion.com', 'Adam InTae Gerard');
$mail->Subject = 'Re: StackChampion Inquest';
/* This is forwarded through a GoDaddy forwarding account */
$mail->Body = $message;
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
?>
Я собрал рабочую демонстрацию на GitHub, доступную здесь:
https://github.com/Thoughtscript/wp_postlib_godaddy_php_emailer
это бесплатно использовать и opensource, но соответствующий код указан выше. Есть по-видимому, много проблем с их SMTP-серверами - я обнаружил, что вы можете обойти это, используя их предлагаемые серверы ретрансляции, которые не требуют аутентификации, хотя они все еще могут быть связаны с одним из ваших зарегистрированных сообщений электронной почты.
надеюсь, что кто-то поможет! Ура!
Ну, я решил это, но не в хорошем смысле. После того, как я исчерпал все, что мог придумать, я просто поднял руки и сказал GoDaddy переключить меня обратно на сервер Windows. Как только они это сделали, проблема исчезла. Поскольку мне все равно, на каком сервере я нахожусь, этот результат удовлетворительный, но вряд ли удовлетворительный.
Итак, мой совет для любых клиентов GoDaddy, которые считают, что у них есть PHPMailer настроен правильно, но не может заставить его работать, чтобы узнать, если вы находитесь на сервере Linux. Это выглядит для меня, как GoDaddy имеет свои серверы Linux, настроенные для блокировки этого типа почтовых транзакций. Я не могу сказать этого определенно, так как я верю в это только потому, что я не смог заставить его работать. Но я могу четко сказать, что моя настройка PHPMailer была точной, по крайней мере, с Windows.
возможно, это поможет сэкономить кому-то время и разочарование. Если у кого-то есть лучшая идея, пожалуйста, напишите.
Если на вашем хостинге есть собственный почтовый сервер, ваш почтовый сервер использует следующие порты 25,465,587. Настройки для GoDaddy:
$mail->isSMTP();
$mail->Host = localhost;
$mail->SMTPAuth = true;
$mail->Username = 'example@gmail.com';
$mail->Password = 'password';
//$mail->SMTPSecure = 'tls';
//$mail->Port = 587;
на других серверах нужно создать почтовый ящик с вашим доменом:
$mail->isSMTP();
$mail->Host = localhost;
$mail->SMTPAuth = true;
$mail->Username = 'example@yourdomain.com';
$mail->Password = 'password';
//$mail->SMTPSecure = 'tls';
//$mail->Port = 587;
обновление для января 2015: мне просто нужно было решить эту точную проблему. Вам нужно иметь GoDaddy Linux хостинг с cPanel учетных записей электронной почты:
- В разделе Учетные записи электронной почты рядом с каждым адресом электронной почты в раскрывающемся списке выберите опцию "настроить почтовый клиент".
- на следующей странице прокрутите вниз до "ручные настройки". Здесь вы увидите, что GoDaddy теперь создает индивидуальные входящие / исходящие серверы для каждого адреса электронной почты. Поэтому используйте исходящий сервер SSL, auth: true, порт: 465, электронная почта / пароль.
надеюсь, это поможет.
изменить это:
$mail->Host = 'smtpout.secureserver.net:465';
$mail->SMTPSecure = "ssl";
для этого:
$mail->Host = 'smtpout.secureserver.net:25';
и это сработало для меня!
согласно Godaddy, замените
$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
С
$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"
это сработало для меня.
при использовании cPanel и WPForms в WordPress
Что помогло мне создать адрес электронной почты с cPanel и используйте его настройки из раздела ручных настроек либо с SSL, либо без SSL
GoDaddy / Linux (cPanel)/PHPMailer
require_once("../include/PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "a2plcpnXXXXX.prod.iad2.secureserver.net";
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->Username = "your username";
$mail->Password = "your password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;
Не стесняйтесь использовать любой адрес электронной почты/имя $ mail - >From и $mail - >FromName значения. Надеюсь, это поможет.
просто была эта проблема, связался с GoDaddy, и они переключили мой MX с локального на удаленный, и он решил проблему мгновенно! Просто предупреждает всех, кто все еще испытывает эту проблему.
после борьбы с этой проблемой в течение нескольких дней и ее работы я думал, что обновлю эту тему для 2017. Надеюсь, я смогу сэкономить кому-то несколько потерянных часов. Я принимаю на Godaddy с cpanel. Это была настройка SMTPAutoTLS, которую я, наконец, наткнулся и попробовал, это была недостающая часть. Ошибка, которую я получал, заключается в следующем:
PHP предупреждение: stream_socket_enable_crypto (): одноранговый сертификат CN=*.prod.iad2.secureserver.net' did not match expected CN=
localhost' в / главная/имя пользователя / public_html / классы / PHPMailer / класс.протокол SMTP.php on line 369
ошибка почтовой программы: ошибка SMTP connect (). https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
ниже приведены настройки PHPMailer, которые работали для меня.
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPAuth = false;
это будут ваши настройки SMTP для GoDaddy:
require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->From = "yourmail@ddd.com";
$mail->FromName = "name";
$mail->Host = "localhost";
$mail->SMTPAuth = false;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
Godaddy-это кошмар.
Если вы используете старую учетную запись электронной почты рабочего пространства и не знакомы с cpanel, попробуйте это
require '/home/content/94/8357694/html/SHTECH/server/PHPMailer.php';
use PHPMailer\PHPMailer\PHPMailer;
function sendmail($to,$subject,$message,$name)
{
define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);
define('SMTP_AUTH',true);
$mail = new PHPMailer();
$mail->IsSMTP();
$mail -> SMTPDebug = 1;
$mail->Host = "smtpout.secureserver.net";
$mail->SMTPAuth = SMTP_AUTH;
$mail->Port = 80;
$mail->Username = "info@signalhilltechnology.com";
$mail->Password = "allen1";
//$mail->SMTPSecure = 'ssl';
$mail->SetFrom('info@signalhilltechnology.com', 'Cagney');
$mail->AddReplyTo("info@signalhilltechnology.com","Cagney");
$mail->Subject = $subject;
$body = $message;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, $name);
if(!$mail->Send()) {
return 0;
} else {
return 1;
}
}
соединение SMTP сервера GoDaddy отказано.
сайт bigrock $mail - >Port =587; / / SMTP ser * vers
У GoDaddy $mail - >Port =25; / / SMTP ser * vers