2008-09-02 4 views
6

Я не уверен, что я использую здесь все правильную терминологию, поэтому прощайте.Работает ли функция PHP mail(), если у меня нет записи MX

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

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

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

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

ответ

2

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

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

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

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

ОК, это немного сложнее, но это общий смысл.

Редактировать: Найдена лучшая версия темы sendmail and MX records when mail server is not on web host.

0

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

3

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

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

2

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

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

1

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

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^