2010-05-07 2 views
5

Можно ли проверить, может ли php получить какой-либо пинг/флаг с сервера почтовых обменов, чтобы сказать «да, отправлено письмо отправленному адресату»?Проверка успеха функции mail() PHP

Согласно руководству PHP, возврат почты() может означать boolean; «Важно отметить, что только потому, что почта была принята к доставке, это НЕ означает, что почта действительно дойдет до намеченного пункта назначения».

Означает ли это, что PHP может вернуть успех, но на самом деле может возникнуть проблема на почтовом сервере, который php не знал бы об этом? и в этом случае ни одно электронное письмо не было отправлено, а пользователь не стал более мудрым?

ТИА Джаред

+0

Точно, почта может выдавать истину, и отправка почты может терпеть неудачу. –

+0

AFAIK, самый точный способ - заставить пользователя предпринять какие-то действия в отправленном письме. Если действие завершено, возможно, они получили электронное письмо. – munch

ответ

4

mail() функция будет просто подключить через SMTP сервер и отправить сообщение. Затем, если сервер говорит, что сервер получил сообщение, почта вернется успешно.

В то же время все может пойти не так. Учетная запись пользователя может быть удалена, жесткий диск на почтовом сервере может упасть, сервер SMTP не сможет найти почтовый сервер пользователя. Почтовый сервер пользователя может отклонить сообщение, поскольку почтовый ящик пользователя заполнен. Многие, многие вещи могут пойти не так.

Это не ошибка PHP. И никакого разумного улучшения не может быть сделано для любого API языка программирования, чтобы убедиться, что кто-то получил сообщение. Но некоторые компании, такие как CampaignMonitor, предлагают платный сервис, который будет проверять наличие отказов и если люди откроют сообщение для обновления рассылки ваших списков рассылки. Используя API из таких сервисов, вы можете проверить через несколько дней, если сообщение было успешно получено.

Таким образом, документы PHP просто говорят: «Мы можем только сказать вам, если первый SMTP-сервер сказал, что получил его. Любое количество проблем может происходить между компьютерами оттуда к человеку с учетной записью электронной почты.

+1

ОК, вот ответы, которые я хотел знать, спасибо парням :) p.s god Мне нравится этот сайт !! <3 – Jared

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