Как проверить, была ли получена почта с помощью php

Я новичок в php. Я хочу отправить электронное письмо кому-то, а потом мне нужно проверить, можно ли получить эту почту. Как мне это сделать? Надеюсь, вы, ребята, понимаете мою проблему;). Заранее спасибо. Марк

Это очень липкий вопрос. Единственный реальный способ – заставить PHP следить за входящими сообщениями, чтобы проверить уведомления об «недоставленных сообщений», которые вы могли бы вернуть. Если вы действительно хотите продолжить работу с ним, посмотрите на POP3-коннекторы для PHP. Пример: http://pecl.php.net/package/POP3

if (strpos(strtolower($subject), 'undeliverable') !== false){ //do whatever you want with the address that couldn't be reached } 

Вам технически не понадобится скомпилированное расширение PHP для POP3 (особенно если вы новичок в PHP) … вы можете подключать и читать сообщения, открывая сокет и говорящий почтовый сервер: http://www.adamsinfo.com/ а-рудиментарный-PHP-pop3-пример /

Изменить (годы спустя):

Определенно проверьте http://mailgun.net/ , http://sendgrid.com/ и http://postmarkapp.com/ .

Если вы отправляете письма HTML, вы можете использовать небольшой трюк:

  • генерировать уникальный идентификатор отправляемой почты (на основе контента и получателя)
  • включить изображение, загруженное с вашего веб-сервера

    <img src="http://yourdomain.com/tracker.php?id=1234567" />

  • в tracker.php , зарегистрируйте идентификатор, который вызвал сценарий, и отправьте изображение 1px на 1px

Однако это не сработает, если почтовый клиент не загружает изображения из Интернета при показе сообщения электронной почты, например, как это делает Thunderbird (это также делает Outlook IIRC)

Существует идеальное решение, с точки зрения знания электронной почты было прочитано.

Плохая часть состоит в том, что тело электронной почты должно храниться на веб-сервере.

Трюк: -Отправляйте eMail только небольшой текст и URL-адрес, поэтому пользователь должен перейти на этот URL-адрес, чтобы прочитать содержимое электронной почты.

Другими словами … на электронной почте нет ничего о том, что вы хотите отправить, есть только ссылка на уникальную страницу, которую вы создаете, прежде чем отправлять такую ​​электронную почту.

Поэтому для чтения содержимого пользователь должен открыть веб-браузер и перейти к такому URL-адресу.

Трюк состоит в том, чтобы поместить немного такого текста в eMail … что-то вроде: bla, bla, bla … нажмите здесь, чтобы прочитать больше.

Концепция: Онлайн-тело, автономный URL-адрес для доступа к такому телу.

Таким образом, вы можете быть уверены в этом: если URL был прочитан, электронная почта была прочитана.

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

Поэтому вы не должны контролировать, чтобы робот не мог перейти на такой URL … например, с URL-адресом, например: https: // server / private /? EMail_Body = пользователь

Надеюсь, эта идея может помочь кому-то.

Для этого нет определенного решения. Ошибки в сети – это хорошая идея, но они угасают, поскольку они очень проблематичны для безопасности и блокируются по умолчанию в каждом текущем почтовом клиенте, который я знаю. Я бы предложил комбинацию проверки входящего почтового ящика, такого как предложенный brianreavis, и, кроме того, запрос на получение квитанции с использованием следующей строки заголовка:

  Disposition-Notification-To:<xxx.xxx@example.com> 

Таким образом, вы можете получить большинство негативов (отскок писем), а также множество положительных результатов (квитанций). Отправка чека может быть заблокирована отправителем, но вместе с уведомлениями об ошибках синтаксического анализа вы должны иметь достаточно надежную систему.

Один из вариантов – это веб-ошибка, но они далеки от надежности на 100% и, возможно, не являются хорошим способом поведения. Он не будет различать электронные письма, которые являются непрочитанными, и те, которые не доставлены, например, из-за плохого адреса электронной почты, и можно прочитать электронное письмо, содержащее веб-ошибку, без его запуска.

Короче вы создаете HTML-письмо, содержащее элемент, на котором есть URL-адрес вашего сайта, который уникален для этого письма. Поэтому, если клиент обращается к этому URL-адресу, вы можете быть уверены, что кто-то прочитал вашу электронную почту. В Википедии приведен пример :

Например, электронное письмо, отправленное на адрес somebody@example.org может содержать встроенное изображение URL http://example.com/bug.gif?somebody@example.org . Всякий раз, когда пользователь читает электронное письмо, запрашивается изображение по этому URL-адресу. Часть URL-адреса после вопросительного знака игнорируется сервером с целью определения, какой файл отправить, но полный URL-адрес хранится в файле журнала сервера. В результате файл bug.gif отправляется и отображается в устройстве чтения электронной почты; в то же время сервер сохраняет факт, что прочитан конкретный адрес электронной почты, отправленный на адрес somebody@example.org .

Однако, возможно, вполне вероятно, что кто-то может прочитать вашу электронную почту без подключения к этому URL-адресу. Это может быть вызвано:

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

Это часто используемый вариант – как спамерами, так и более ответственными маркетологами, – но я, вероятно, не рекомендовал бы его, если вы не полностью поймете его ограничения и последствия с точки зрения того, что люди могут думать о вас, если вы его используете.