Заголовки функций PHP Mail () - PullRequest
0 голосов
/ 09 августа 2011

ОК, поэтому у меня есть функция почты PHP.Он отлично работает, когда я помещаю его на свой сервер, но когда я помещаю его, я отправляю его по почте своему клиенту, чтобы он мог поместить его на свой сервер, он не работает.Он не дает мне никаких ошибок на их сервере и просто попадает на страницу «Спасибо», но никогда не отправляет электронное письмо.Они говорят, что это потому, что у PHP Mail нет правильных заголовков, но я не думаю, что ему нужны заголовки, если это просто «mail (to, subject, message)». Они говорят, что все функции, связанные с PHP, установлены правильно, потому что я изначальнодумал, что это PHP Mail отключается.

Любые предложения будут хороши.

Ответы [ 4 ]

3 голосов
/ 09 августа 2011

Функция почты PHP - это кусок мусора.Если он говорит «истина», это только означает, что письмо было передано с PHP на локальный почтовый сервер.Это НЕ означает, что письмо действительно было доставлено.В реальных условиях mail () запихивает ваш конверт в почтовый ящик на углу, затем начинает гордо говорить: «Я сделал это! Я доставил его вашему пользователю!» ... с конвертом, все еще застрявшим внутри почтового ящика.

Ваш клиент должен проверить логи своего почтового сервера, чтобы увидеть, что происходит с электронной почтой после ее передачи из PHP.Даже если само письмо будет получено позже или спамом, почтовая функция PHP НИКОГДА не увидит ни одной из этих ошибок.

2 голосов
/ 09 августа 2011

Вы всегда должны использовать заголовок "ОТ".

Примечание:

При отправке почты, почта должна содержать заголовок От. Это может быть установить с параметром Additional_headers, или по умолчанию может быть установлен в php.ini.

Если этого не сделать, появится сообщение об ошибке, похожее на Предупреждение: mail (): «sendmail_from» не установлен в php.ini или в пользовательском заголовке «From:» отсутствует. В заголовке From также указывается Return-Path под Windows.

Это прямо из документации для mail ()

0 голосов
/ 09 августа 2011

Убедитесь, что на сервере установлен почтовый транспортный агент, например sendmail.

0 голосов
/ 09 августа 2011

По моему опыту, мне почти всегда повезло, когда я настраивал выделенную почтовую учетную запись для клиента в своем домене на своем почтовом сервере, проходил аутентификацию на почтовом сервере и отправлял почту через него с помощью SMTP через PEAR_Mail.Вы получите гораздо больше полезной информации от PEAR_Mail, если что-то пойдет не так в процессе отправки, а также отправив по SMTP через почтовый сервер, у вас будет больше шансов избежать проблем с SPF и т. Д.

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