В php при отправке почты с почтой
функция, которую вы должны проверить с
состояние
if (mail ($ to, $ subject, $ message,
$ headers)) {// Успешная почта
поставка} else {// Код для
неуспешная рассылка}
Это очень неточно для того, что ОП на самом деле пытается сделать ... Из руководства :
Важно отметить, что просто
потому что почта была принята для
доставка, это не означает, что почта
фактически достигнет предполагаемого
назначения.
В зависимости от типа сервера и конфигурации вы получите различные результаты. Лучше использовать SMTP для обеспечения правильного и согласованного интерфейса. Как правило, я бы использовал библиотеку, чтобы сделать это ... вы могли бы сделать это вручную, используя сокеты, но зачем изобретать велосипед? В зависимости от проекта я использую 3 библиотеки ...
Для этого уровня взаимодействия я бы использовал SwiftMailer или Zend_Mail. Оба они поддерживают получение информации из SMTP, а также отправку сообщения, поэтому, например, вы можете получить информацию о неудачных получателях ( SwitftMailer пример ). Как Zend, так и Swift также поддерживают пользовательские очереди катушек, чтобы вы могли более глубоко интегрировать очереди и отправку сообщений с учетом требований приложений. SwiftMailer также имеет функцию batchSend ... я предполагаю, что это доступно и в Zend_Mail, но я никогда не копался в глубине.
Это только полдела ... Однако для того, чтобы действительно прочитать отчеты о недоставке, вам необходимо выполнить сценарий входа в почтовое хранилище, циклически проходя через сообщения, а затем анализируя заголовки и / или тело сообщения. NDR (убедитесь, что вы ссылаетесь на документы RFC, перечисленные в википее), затем примите меры на основе этого. Недавно я использовал Zend_Mail_Storage , чтобы справиться с этим. Если вам нужно сделать это, то, возможно, вы также захотите просто использовать Zend_Mail для отправки, так как Storage включен в компонент. Вам нужно взглянуть на RFC для получения отчетов о недоставке и кодов состояния для правильного анализа.
В целом, если это вообще возможно, я рекомендую просто интегрировать сторонние службы, такие как MailChimp или Постоянный контакт . Это намного меньше работы, и если у вас не будет команды разработчиков, работающей над этим со временем, сервис, вероятно, даст лучшие результаты по всем направлениям.