Отключение SMTP-сервера PHPMailer GoDaddy
На днях я столкнулся с некоторыми проблемами с моим размещенным сайтом GoDaddy. Я назвал их техническую поддержку, и человек, с которым я говорил, предположил, что мои проблемы связаны с тем, что я был в ящике Windows и лучше работал в ящике Linux. Не имея мнения по этому поводу, я согласился, и они переключили меня.
После этого перехода моя функциональность PHPMailer покинула меня. У меня это работало месяцами, поэтому я знаю, что мои настройки точны. Я подтвердил с GoDaddy, что учетная запись, которую я пытаюсь отправить, не изменилась с их точки зрения. Никаких изменений с пользовательской стороны (как новый пароль) не производилось. Итог, единственное, что отличается от того, что мой сайт теперь размещен на сервере Linux. Что это.
Поэтому я предполагаю, что мои трудности с PHPMailer должны быть связаны с этим, поскольку это слишком совпадение, что script, который работал в течение нескольких месяцев, терпит неудачу в тот момент, когда происходит переход сервера. Но почему? Я провел час с их технической поддержкой, и они не видят ничего плохого в настройках сервера. Мы проверили мои настройки (просто для удовольствия). Все выглядит хорошо, но когда я отправляю электронное письмо, я получаю эту ошибку:
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 = "[email protected]";
$mail->Password = *******;
$mail->Subject = "Test Email";
$mail->SMTPDebug = 1;
Есть ли у кого-нибудь идеи, почему это может произойти? Есть ли какие-то настройки сервера, о которых люди технической поддержки могут не знать, например, в моем файле php.ini? Парень, с которым я работал, сделал все возможное, чтобы помочь мне, но он может просто не знать о чем-то.
Любая помощь приветствуется. Сообщите мне, есть ли какая-либо другая информация, которую я могу предоставить. Спасибо!
EDIT: Я должен также упомянуть некоторые другие попытки, которые я сделал. Я получаю тот же результат независимо от того, что.
1) TLS с портом 587
2) Без SSL с использованием портов 25, 80 и 3535.
2) Мой собственный адрес gmail, изменяющий сервер, имя пользователя, пароль и т.д.
Ответы
Ответ 1
Как кажется, это постоянная проблема, позвольте мне добавить свой собственный опыт.
Наш сайт использует PHPMailer, и сайт размещен на сервере Linux GoDaddy. Настройки, которые, казалось, были правильными (в соответствии со всем, что я мог найти на 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: [порт] и т.д.), имена пользователей, пароли и т.д. Я позвонил в goDaddy. Еще через 40 минут выяснилось, что:
1) учетные записи электронной почты "рабочего пространства" удаляются. Это важно, потому что если у вас есть учетная запись электронной почты с goDaddy сегодня, у вас, вероятно, есть учетная запись Workspace. Это, по словам представителя технической поддержки, размещено отдельно от вашей учетной записи linux.
2) goDaddy переходит к учетным записям cPanel. Ура! Расписание? "... в ближайшие 2 - 3 года!"
3) Я перевел наши учетные записи из Workspace в учетные записи cPanel, пока я был на телефоне с репьюром. Действительно легко сделать.
4) После того, как вы изменили учетные записи электронной почты (включая редактирование записей MX) на электронную почту cPanel (по сравнению с электронной почтой "рабочая область" ), соответствующие настройки для электронной почты электронной почты с помощью 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, но получение webform для безупречной работы с PHPMailer было настоящей наградой!
Ответ 2
Я нахожусь на GoDaddy на Linux, как @surfbird0713. По моей 32-й попытке для меня тоже работало следующее:
$mail2->Host = localhost;
//$mail2->SMTPAuth = false;
//$mail2->Username = '[email protected]';
//$mail2->Password = '*******';
//$mail2->SMTPSecure = 'tls';
//$mail2->Port = 465;
Раньше я пытался с именем пользователя, логином, портом и т.д. Когда я прокомментировал все это и просто пошел с localhost, он сработал.
Ответ 3
Я испытываю эту проблему в течение многих недель. Наконец, решил.
Во-первых, я должен указать причины проблемы (как я ее испытал).
GoDaddy позволяет только выйти из порта 25
, 465
, 80
. Таким образом, вы не можете связаться с сервером SMTP, который не использует ни один из этих 3 портов.
Но если вы используете SMTP из GMAIL для примера или любого другого сервера воспроизведения (особенно из Bell Canada, на порту 465
), тогда любой запрос на передачу от GoDaddy будет заблокирован - следовательно, вы увидите Connection Refused (111)
. Да, они являются конкурентами в сервисах хостинга... поэтому сделайте свой собственный вывод о том, когда эта проблема будет решена между ними.
Хуже того, когда вы отправляете электронное письмо от relay-hosting.secureserver.net
, предоставленное GoDaddy, вы столкнулись с серьезным неудобством длительной очереди, которая может занять пару минут, чтобы получить электронную почту. Хуже того, люди с учетной записью электронной почты Bell Canada (или Bell affiliates) не будут видеть электронную почту с этого сервера ретрансляции - письмо даже не попадет в ваш спам-бокс! Поскольку письмо полностью блокируется Белл (их извинение = слишком много спама от GoDaddy).
Итак, недавно я сделал это, и это сработало хорошо для меня. Если у вас есть служба хостинга с GoDaddy, зарегистрируйте учетную запись электронной почты. Затем, используя эту учетную запись электронной почты, пример [email protected]
, сделайте это с помощью PHPMail:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtpout.secureserver.net";
$mail->Username = "[email protected]"; /*Substitute with your real email*/
$mail->Password = "myverylongpassword"; /*Substitute with your real password*/
$mail->SMTPAuth = true;
$mail->Port = 80;
Затем выполните ваши обычные PHP-игры... Это отлично работает для меня. Надеюсь, он сделает то же самое для вас.
Ответ 4
После многих разочарований это также сработало для меня.
include("includes/class.phpmailer.php");
date_default_timezone_set('UTC');
define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);**
define('SMTP_USERNAME','[email protected]');
define('SMTP_PASSWORD','me123');
define('SMTP_AUTH',false);
$email = '[email protected]';
$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();
?>
Ответ 5
это будут настройки SMTP для GoDaddy:
require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->From = "[email protected]";
$mail->FromName = "name";
$mail->Host = "localhost";
$mail->SMTPAuth = false;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
Ответ 6
У меня такая же проблема Но я пробовал это
$mail->SMTPAuth = false;
и HOSTNAME: relay-hosting.secureserver.net
И Bingoooooo его работающий
просто выполните эту настройку в SMTP
Ответ 7
Используя некоторые из приведенных выше советов, я смог получить готовый сайт начальной загрузки и работать с электронной почтой на общем хостинге на GoDaddy.
Я сделал AJAX-вызов email.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('[email protected]', '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
Это бесплатно для использования и с открытым исходным кодом, но соответствующий код указан выше. По-видимому, существует много проблем с их SMTP-серверами - я обнаружил, что вы можете обойти это, используя свои предлагаемые серверы ретрансляции, которые не требуют аутентификации, хотя они все равно могут быть связаны с одним из ваших зарегистрированных учетных записей электронной почты.
Надеюсь, что кто-то поможет!
Ура!
Ответ 8
Хорошо, я решил это, но не очень хорошо. После исчерпания всего, о чем я мог думать, я просто поднял руки и сказал GoDaddy переключить меня на сервер Windows. Как только они это сделали, проблема исчезла. Поскольку мне все равно, какой тип сервера я включен, этот результат удовлетворительный, но вряд ли удовлетворительный.
Итак, мой совет для любых клиентов GoDaddy, которые считают, что у них PHPMailer настроен правильно, но не может заставить его работать, - выяснить, находитесь ли вы на сервере Linux. Мне кажется, что у GoDaddy установлены серверы Linux, которые блокируют этот тип почтовых транзакций. Я не могу сказать это окончательно, так как я только верю, потому что я не смог заставить его работать. Но я могу ясно сказать, что моя настройка PHPMailer была точной, по крайней мере с Windows.
Возможно, это поможет спасти кого-то время и разочарование. Если у кого-то есть лучшая идея, отправьте сообщение.
Ответ 9
Измените это:
$mail->Host = 'smtpout.secureserver.net:465';
$mail->SMTPSecure = "ssl";
Для этого:
$mail->Host = 'smtpout.secureserver.net:25';
и это сработало для меня!
Ответ 10
Если на вашем хостинге есть собственный почтовый сервер, ваш почтовый сервер использует следующие порты 25,465,587.
Настройки для GoDaddy:
$mail->isSMTP();
$mail->Host = localhost;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
//$mail->SMTPSecure = 'tls';
//$mail->Port = 587;
На других серверах необходимо создать почтовый ящик с вашим доменом:
$mail->isSMTP();
$mail->Host = localhost;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
//$mail->SMTPSecure = 'tls';
//$mail->Port = 587;
Ответ 11
Обновление за январь 2015 года: мне просто пришлось решить эту проблему. У вас должен быть хостинг GoDaddy linux с учетными записями cPanel:
- В разделе учетных записей электронной почты рядом с каждым адресом электронной почты в раскрывающемся списке выберите параметр "настроить почтовый клиент".
- На следующей странице прокрутите вниз до "Ручные настройки". Здесь вы увидите, что GoDaddy теперь создает индивидуальные входящие/исходящие серверы для каждого адреса электронной почты. Поэтому используйте исходящий сервер, SSL, auth: true, порт: 465, адрес электронной почты/пароль.
Надеюсь, что это поможет.
Ответ 12
Согласно Godaddy, замените
$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
с
$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"
Это сработало для меня.
Ответ 13
После борьбы с этой проблемой в течение пары дней и ее работы я решил обновить эту тему на 2017 год. Надеюсь, я смогу сэкономить несколько часов впустую. Я принимаю на Godaddy с cpanel. Это была настройка SMTPAutoTLS, в которой я, наконец, столкнулся и попытался, это был недостающий кусок. Ошибка, которую я получал, выглядит следующим образом:
PHP Предупреждение: stream_socket_enable_crypto(): сертификат peer CN = *.prod.iad2.secureserver.net' did not match expected CN=
localhost 'в/home/username/public_html/classes/PHPMailer/class.smtp.php в строке 369
Ошибка Mailer: Ошибка 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;
Ответ 14
При использовании cPanel и WPForms в WordPress
Что мне помогло - создать адрес электронной почты cPanel
и используйте его настройки в разделе "Ручные настройки" либо с помощью SSL или Non SSL
![введите описание изображения здесь]()
Ответ 15
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- > От и $mail- > FromName. Надеюсь, это поможет.
Ответ 16
Просто эта проблема возникла, связавшись с GoDaddy, и они переключили мой MX с Local на Remote, и он решил проблему мгновенно! Просто голова для тех, кто все еще испытывает эту проблему.
Ответ 17
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 = "[email protected]";
$mail->Password = "allen1";
//$mail->SMTPSecure = 'ssl';
$mail->SetFrom('[email protected]', 'Cagney');
$mail->AddReplyTo("[email protected]","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;
}
}
Ответ 18
Обновлено 8-25-2019 Для тех, кто ищет ответ, как правильно настроить Rd-Mailform и PHPmailer для Godaddy.
Прежде всего убедитесь, что у вас есть последние файлы с Github.
Во-вторых, это ПРАВИЛЬНЫЕ настройки для электронной почты Cpanel с SMTP и GODaddy
Отредактируйте следующий файл: rd-mailform.config.json (если вы не используете этот файл, то жесткий код в rd-mailform.php)
Файл для редактирования: rd-mailform.config.json
~~~
"useSmtp": false,
"host": "localhost",
"port": 25,
"username": "[email protected]",
"password": "yourpasswordforthataccount",
"recipientEmail": "youremailaddress"
~~~
Теперь, после того, как вы это отредактируете, откройте rd-mailform.php и отредактируйте следующие строки:
// Использовать ли аутентификацию SMTP
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = "tls";
Это должно работать на всех серверах Godaddy, использующих rd-mailform с phpmailer
-D
Ответ 19
Отключено соединение SMTP GoDaddy Server.
Bigrock
$ mail- > Port = 587;//SMTP ser * vers
GoDaddy
$ mail- > Port = 25;//SMTP ser * vers