Работает ли функция PHP mail (), если у меня нет записи MX - PullRequest
6 голосов
/ 02 сентября 2008

Я не уверен, что здесь используется вся правильная терминология, так что будьте снисходительны.

Я просто создал сайт с контактной формой, которая отправляет электронное письмо с помощью функции PHP mail (). Достаточно просто. Тем не менее, живой сайт на самом деле не отправляет электронное письмо, а тестовый сайт - отправляет. Так что это не мой код.

Это общий хост, и у нас есть другой сайт с той же функцией, которая отлично работает, поэтому это не сервер.

Единственное различие между ними состоит в том, что у сайта, который не работает, просто есть сервер имен, указывающий на нас, и поэтому запись MX никогда не касается нашего сервера.

Итак, мой вопрос, может кто-нибудь подтвердить, что функция mail () не будет работать, если у нас нет записи MX, указывающей на наш сервер. Спасибо

Ответы [ 6 ]

3 голосов
/ 02 сентября 2008

Да. Это будет работать просто отлично. У меня есть скрипт PHP, использующий функцию mail () с записями MX, установленными на Google Apps.

Если два сценария находятся на разных хостах (это немного неясно из вашего поста), то убедитесь, что хост не блокирует некоторые из пользовательских заголовков. У меня были проблемы с этим при создании моего скрипта, но удаление всех, кроме заголовка From, решило проблему.

2 голосов
/ 24 февраля 2009

Привет, ребята, спасибо за ответы, это действительно ценится.

Проигнорировав проблему в течение нескольких месяцев, она снова возникла, но я все же нашел ответ на свои проблемы.

Во-первых, как вы и предполагали, PHP и функция mail () работали должным образом. Письмо было отправлено.

Проблема заключается в том, что, когда электронное письмо отправлено, оно просто предполагает, что, поскольку оно отправлено с адреса mydomain.com на *@mydomain.com, само письмо размещено на том же сервере, поэтому оно отправляется туда и игнорируется запись MX.

Ладно, это немного сложнее, но это общая проблема.

Edit: Нашел лучшую версию темы записей sendmail и MX, когда почтовый сервер не находится на веб-хосте .

2 голосов
/ 02 сентября 2008

Некоторые хосты (Godaddy - худший) блокируют использование sendmail и mail ().

Обычно я использую smtp для отправки писем из моих приложений php, а с PHPMailer это очень просто. Многие приложения используют более старые версии PHPMailer, и иногда их обновление может помочь. Также достаточно просто быстро добавлять короткие сценарии.

1 голос
/ 11 января 2009

Если сайт использует SPF, не забудьте включить отправляющий сайт в свою запись SPF. Для получения дополнительной информации см. здесь .

1 голос
/ 11 января 2009

Функция mail() отправляет почту с сервера, на котором размещен скрипт. Поскольку многие провайдеры виртуального хостинга размещают отдельные почтовые серверы, а функция mail() не поддерживает какую-либо аутентификацию, многие провайдеры виртуального хостинга блокируют ее.

0 голосов
/ 02 сентября 2008

Да, вы можете указать в поле «От» все, что захотите, и оно все равно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...