У меня есть веб-сайт, который размещен GoDaddy на виртуальной выделенной платформе, и мне не удалось заставить функцию mail()
работать должным образом в моем PHP-скрипте. Я пытаюсь отправить электронные письма с паролями подтверждения, когда они впервые регистрируются на моем сайте, а функция mail()
отлично работает для адреса Gmail, но не для других, таких как AOL или даже почтовый сервис GoDaddy!
Я попробовал поговорить с несколькими сторонниками поддержки GoDaddy, но они не были действительно полезны в этом вопросе. Я посмотрел в Интернете, и похоже, что это очень распространенная проблема с людьми, которые размещают свои сайты на GoDaddy. Я не получаю отскок от сообщений электронной почты, когда я не получаю письма, поэтому трудно понять, что происходит.
Вот мой PHP-код:
$sendtoemail = 'newsignup@aol.com'; $emailsubject = "Please validate your email"; $emailbody = "Validation info, blah blah."; $emailheader = 'From: admin@example.com' . "\r\n" . 'X-Mailer: PHP' . "\r\n" . 'Reply-To: admin@example.com' . "\r\n" . '-fadmin@example.com'; mail($sendtoemail, $emailsubject, $emailbody, $emailheader);
Я получил несколько ошибок, когда я проверил /usr/local/psa/var/log/maillog
(доступ через PuTTY SSH), которые все закончились: deferral: ./Maildir:_No_such_file_or_directory/
Я также активировал обратный DNS на моей учетной записи хостинга и создал DNS-запись SPF, которая отправляет электронную почту через «Только GoDaddy» и проверила поле «Включить PTR» для поиска DNS. Это было в разделе «TXT (текст)» «Редактора файлов зон» в DNS-менеджере GoDaddy. (Надеюсь, это имеет для вас больше смысла, чем для меня).
Я не уверен, поддерживает ли GoDaddy PHP Mail, это обычно большая проблема для веб-хостинга, потому что она используется в сценариях для отправки спама.
Лучшее, что нужно сделать, это проверить, какие расширения PEAR у GoDaddy есть на хостинге, если у них есть почта PEAR, вы можете это использовать. Если нет, попробуйте использовать аутентифицированную отправку почты.
Я могу дать вам пример PEAR и аутентифицированной почты, если вам нужно.
Это старая нить, но я думал, что добавлю свой опыт, если они помогли бы кому-то другому.
У меня были очень похожие проблемы с mail (), и я позвонил в сервисы GoDaddy. Я был на телефоне в течение 2 часов, и после 30 или около того тестовых вызовов на почту () (они даже загрузили свой собственный скрипт testmail), я не получил одно письмо успешно (хотя mail () возвратил значение 1 , т.е. успешно). Конечным результатом было то, что он сказал мне, что реле сервера электронной почты «поставлены в очередь». Через два часа один технический парень поддержки и его «администратор sys» … все та же проблема.
Решением было использование php-библиотеки swiftmailer вместо простой функции old mail (). Письма, отправленные немедленно с использованием swiftmailer. Надеюсь, это поможет кому-то еще!
Излишне говорить, что я изменил хостинг-провайдеров!
вам нужно использовать переменные по умолчанию для PHP mail () для GoDadday, я не знаю, но когда я использовал ваш фрагмент, он тоже не будет работать для меня, но, используя стандартные переменные, я получил почту; и да, не используйте переменную для выделенного адреса электронной почты, добавьте функцию mail (), как я,
попробуйте надежду, тоже сработает для вас;
$subject = "Please validate your email"; $message = "Validation info, blah blah. 2nd msg"; $Header = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $Header .= 'From: Lux <info@luxstyles.com >' . "\r\n"; if(mail('info@luxstyles.com', $subject, $message, $Header)) echo "email sent"; else echo "email sending fail";
Поэтому я сделал некоторую работу, используя функцию почты php на godaddy deluxe. Он отправил бы мою учетную запись gmail, но фактическую учетную запись электронной почты, используя домен, который был на стороне, почта никогда не делала этого. Я должен поверить, что есть какой-то метод безумия. Мое предложение – попробовать другое электронное письмо, если вы не получаете почту из почты (). Я знаю, что это дает ключ к вашей идеальной настройке того, куда вы хотите, чтобы письма отправлялись, но, по крайней мере, вы получаете электронные письма. Возможно, вы могли бы использовать трюк для пересылки, чтобы получить почту в ваш почтовый ящик, если вы действительно получите почту.