Я не уверен, что использую здесь всю правильную терминологию, так что будьте снисходительны.
Я только что создал сайт с контактной формой, которая отправляет электронное письмо с помощью функции PHP mail (). Достаточно просто. Однако действующий сайт на самом деле не отправляет электронное письмо, а тестовый сайт. Так что это не мой код.
Это общий хост, и у нас есть другой сайт с той же функцией, которая отлично работает, так что это не сервер.
Единственное различие между ними состоит в том, что сайт, который не работает, просто имеет сервер имен, указывающий на нас, и поэтому запись MX никогда не касается нашего сервера.
Итак, мой вопрос: не мог бы кто-нибудь подтвердить, что функция mail () не будет работать, если у нас нет записи MX, указывающей на наш сервер. Спасибо






Да, вы можете вставить все, что хотите, в поле «от», и это все равно будет работать.
Да. Он будет работать нормально. У меня есть сценарий PHP, использующий функцию mail () с записями MX, установленными в Google Apps.
Если два сценария находятся на разных хостах (это немного неясно из вашего сообщения), убедитесь, что хост не блокирует некоторые из настраиваемых заголовков. У меня были проблемы с этим при создании сценария, но удаление всего, кроме заголовка From, устранило проблему.
Некоторые хосты (худший из них - Godaddy) блокируют использование sendmail и mail ().
Обычно я использую smtp для отправки писем из моих php-приложений, а с PHPMailer это очень просто. Многие приложения используют более старые версии PHPMailer, и иногда может помочь его обновление. Также достаточно просто быстро добавить к коротким скриптам.
Функция mail() отправляет почту с сервера, на котором размещен сценарий. Поскольку многие поставщики виртуального хостинга размещают отдельные почтовые серверы, а функция mail() не поддерживает никакой аутентификации, многие поставщики виртуального хостинга блокируют ее.
Если сайт использует SPF, не забудьте включить отправляющий сайт в свою запись SPF. Для получения дополнительной информации см. здесь.
Привет, ребята, спасибо за ответы, это очень ценно.
После игнорирования проблемы в течение нескольких месяцев, она снова возникла, но я все же нашел ответ на свои проблемы.
Во-первых, как вы ответили, PHP и функция mail () работали должным образом. Письмо было отправлено.
Проблема заключается в том, что когда письмо отправляется, оно просто предполагает, что, поскольку оно отправляется с mydomain.com на электронную почту *@mydomain.com, само письмо размещено на том же сервере, поэтому оно отправляется туда и игнорирует запись MX. .
Хорошо, это немного сложнее, но это общая суть.
Редактировать: Нашел более качественную версию из темы записи sendmail и MX, когда почтовый сервер не находится на веб-хосте.