На днях я столкнулся с некоторыми проблемами на моем сайте 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, изменяющий сервер, имя пользователя, пароль и т. Д.
Как кажется, это постоянная проблема, позвольте мне добавить свой собственный опыт.
Наш сайт использует 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, но получение веб-формы для безупречной работы с 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, на порту 465
), тогда любой запрос на передачу от GoDaddy будет заблокирован – следовательно, вы увидите Connection Refused (111)
. Да, они являются конкурентами в сервисах хостинга … поэтому сделайте свой собственный вывод о том, когда эта проблема будет решена между ними. Хуже того, когда вы отправляете электронное письмо с relay-hosting.secureserver.net
предоставленное GoDaddy, вы столкнулись с серьезным неудобством длительной очереди, которая может занять пару минут, чтобы получить электронную почту. Хуже того, люди с учетной записью электронной почты Bell Canada (или Bell affiliates) не будут видеть электронную почту с этого сервера ретрансляции – письмо даже не попадет в ваш спам-бокс! Поскольку письмо полностью блокируется Белл (их извинение = слишком много спама от 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;
Затем выполните свои обычные PHP-игры … Это отлично работает для меня. Надеюсь, он сделает то же самое для вас.
После многих разочарований это тоже сработало для меня.
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(); ?>
в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;
и HOSTNAME: relay-hosting.secureserver.net
И Bingoooooo работает
просто выполните эту настройку в SMTP
Используя некоторые из приведенных выше советов, я смог получить сайт начальной загрузки и запустить с электронной почтой на общем хостинге на 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('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
Это бесплатно для использования и с открытым исходным кодом, но соответствующий код указан выше. По-видимому, существует много проблем с их 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:
Надеюсь, это поможет.
Измените это:
$mail->Host = 'smtpout.secureserver.net:465'; $mail->SMTPSecure = "ssl";
К этому:
$mail->Host = 'smtpout.secureserver.net:25';
и это сработало для меня!
По словам Годадди, замените
$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
с
$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"
Это сработало для меня.
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;
в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 с Local на Remote и решили эту проблему мгновенно! Просто голова для всех, кто все еще испытывает эту проблему.
После борьбы с этой проблемой в течение пары дней и получения ее на работу я решил обновить эту тему на 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;
это будут настройки 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;
При использовании cPanel и WPForms в WordPress
Что мне помогло – создать адрес электронной почты из cPanel и использовать его настройки в разделе «Настройки вручную» с помощью SSL или Non SSL
Отключение соединения SMTP сервера GoDaddy.
Bigrock $ mail-> Port = 587; // SMTP ser * vers
GoDaddy $ mail-> Port = 25; // SMTP ser * vers