Отслеживать электронную почту php с помощью php-скрипта?

Я отправляю рассылки по электронной почте, используя функцию php mail() .

Мне нужно отслеживать статус электронных писем.

Статус будет
1. Num.Of Sent.
2. Num.Of Delivered.
3. Дата доставки.
4. Общее число. Чтение.
5. Уникальное чтение Num.Of.
6. Прочитайте дату.
7. Num.Of отскок.
8. Всего пользователей Num.Of щелкнули ссылки в письме.
9. Уникальные пользователи Num.Of щелкнули ссылки в письме.

Из вышеуказанного состояния я мог отслеживать следующее:
1. Отправлено. // Отслеживается, поскольку он отправляется из кодирования.
8. Total Num.Of щелкнул ссылки в письме. // Отслеживается добавлением дополнительных параметров в url.
9. Уникальный Num.Of щелкнул ссылки в письме. // Отслеживается добавлением дополнительных параметров в url.

Как отслеживать другой статус сообщений электронной почты, отправленных из функции mail() ?
Я должен отправлять и отслеживать электронные письма с того же сервера.

Solutions Collecting From Web of "Отслеживать электронную почту php с помощью php-скрипта?"

Вы не можете напрямую отслеживать другой статус из функции mail (). Technically Is Sent сообщает, что почта была успешно отправлена ​​в очередь исходящей почты сервера – вы не можете сказать, покинул ли он ваш сервер.

1 ,. Вам нужно будет проверить журналы своего почтового сервера, чтобы точно увидеть, когда сообщение электронной почты покинуло сервер.

2,3. Количество поставленной и поставленной даты – снова вам нужно будет проверить журналы вашего почтового сервера, чтобы узнать, когда почта была успешно передана на сторонний почтовый сервер. Однако это будет зависеть от вашего определения доставки (в почтовый ящик конечных пользователей в свой почтовый клиент?) Относительно того, насколько надежны эти статистические данные.

4,5,6. Общее количество прочитанных, уникальное число прочитанное, дата чтения. Вы не можете точно отслеживать это. Однако, если вы отправили HTML-адрес электронной почты, вы могли бы вставить изображение в электронное письмо, в котором источником изображения был ваш веб-сервер. Если каждый URL-адрес изображения имеет уникальный идентификатор для человека, которому вы отправили письмо, вы можете отслеживать это из своих журналов сервера (или через php, если URL-адрес был PHP-скриптом, который возвращал изображение). Однако это зависит от конечного пользователя, который позволяет загружать изображения из внешних веб-серверов (например, Outlook и gmail отключили это по умолчанию).

7 ,. Если вы отправили из адреса сценарий на свой сервер, он мог бы проанализировать сообщение о отказе и определить, сколько отскоков. Кроме того, вы можете просто указать адрес из почтового ящика, в который вы входите, и проверить его вручную.

8, 9. Каждая ссылка в письме должна быть ссылкой на URL-адрес вашего веб-сервера. Этот URL-адрес может быть скриптом, который будет отслеживать, кто нажал (используя переменную запроса) и что они хотят видеть (другая переменная запроса), а затем перенаправить их (функция заголовка в php) туда, где вы хотите, чтобы они закончились.

Чтобы получить все эти данные, вам придется использовать разные системы:

Проверка отправленного номера

Код возврата функции почты не является надежным, он сообщает только, что система начнет пытаться отправить почту. Вам нужно будет использовать специализированный PHP-класс, который связывается через SMTP самостоятельно или анализирует журналы системных журналов. Но помните, что это число почти бессмысленно, что приводит к следующему пункту …

Проверка номера

Даже если вы начнете разбирать почтовые журналы или использовать специализированный PHP-класс для отправки через SMTP самостоятельно, вы можете проверить только первый сервер в цепочке, по которой вы передаете письмо. Например, в большой компании почта может быть отправлена ​​на центральный почтовый сервер, который вы можете проверить. Затем он отправляется на другой внутренний почтовый сервер компании, который отказывается от почты. Ты никогда не узнаешь. Даже не говоря о спам-фильтрах. Итак, нет способа узнать, доставлялась ли почта – до следующего пункта …

Проверка количества просмотров

Более формально вам следует сказать, что «проверка количества открытых электронных писем». Для этого вы добавляете изображение с уникальным URL-адресом в вашу HTML-почту, например http://mywebsite.com/images/IDOFRECIPIENT/IDOFMAILING/logo.jpg – при запросе URL-адреса вы знаете, что соответствующий получатель открыл рассылку , Нижняя сторона: если получатель блокирует загрузку внешнего содержимого, вы ничего не можете с этим поделать, вы никогда не узнаете о его чтении.

Количество кликов по ссылкам

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

 www.citibank.com 

плохо.

Отказы

Это тяжелый. Укажите заголовок «Отправитель» в своем письме. Это адрес, на который отправлено письмо. Вы можете использовать другой адрес, чем заголовок «От», что означает, что когда получатель попадает на кнопку «Ответить», он может отправить электронное письмо на адрес info@yourdomain.com, но если он отскакивает, письмо отправляется на bounces-123- 456@newsletter.yourdomain.com.

Хитрость заключается в том, чтобы создать отсканированные адреса в качестве общего для всего домена – поэтому каждое электронное письмо, отправленное в «… @ newsletter.yourdomain.com», должно поступать в тот же почтовый ящик. Внутри адреса электронной почты вы сохраняете идентификатор получателя и почтовую рассылку: bounces- [recipientid] – [mailingid] @ newsletter.yourdomain.com. Адрес получателя – это единственные надежные данные при подпрыгивании, все остальное может быть удалено почтовым сервером получателя.

Затем просто закодируйте PHP-скрипт, который извлекает почту через POP3 и проверяет отправителя.

Надеюсь, я могу вам помочь!

Для количества отправленных вы можете использовать базовую оболочку:

 class Mailer { /** * Events * * @var array */ protected $_events = array(); /** * Number of successful emails * * @var int */ protected $_numFailures = 0; /** * Number of failed emails * * @var int */ protected $_numSuccesses = 0; /** * Send email using PHP mail() function * * @param string $to Send to email address * @param string $subject Email subject * @param string $message Email message * @param string $additionalHeaders Optional. Additional headers * @param string $additionalParams Optional. Additional params * @return Mailer */ public function mail($to, $subject, $message, $additionalHeaders = '', $additionalParams = '') { $result = mail($to, $subject, $message, $additionalHeaders, $additionalParams); if ($result) { $this->_numSuccesses++; } else { $this->_numFailures++; } if (isset($this->_events['mail'])) { foreach ($this->_events['mail'] as $event) { $event($result, $to, $subject, $message); } } return $this; } /** * Get total number of emails sent * * @return int */ public function count() { return $this->_numSuccesses + $this->_numFailures; } /** * Get number of successes * * @return int */ public function getSuccessCount() { return $this->_numSuccesses; } /** * Get number of failures * * @return int */ public function getFailureCount() { return $this->_numFailures; } /** * Add event * * @param string $subject Event subject * @param Closure $event Event to execute when subject called * @return Mailer */ public function addEvent($subject, Closure $event) { if (!is_string($subject)) { throw new InvalidArgumentException('$subject must be a string'); } $this->_events[$subject][] = $event; return $this; } } /** Mailer */ $mailer = new Mailer(); $mailer->addEvent('mail', function($result, $to, $subject, $message) { // Code to log to database }); $mailer->mail($to, $subject, $message); // Execution order: // 1. Mailer::mail() // 2. Increase successes or failures, as appropriate // 3. Execute 'mail' events // 4. Closure with code to log to database executed 

Вы можете легко зарегистрировать любой исходящий почтовый трафик, проходящий через функцию PHP mail() .

Это делается путем создания обертки, которая будет заботиться обо всех: протоколировании и отправке писем. Это относительно легко выполнить и можно контролировать с помощью настроек php.ini .

Я могу порекомендовать: как регистрировать электронные письма, отправленные с помощью функции mail () PHP для обнаружения спама формы, для получения более подробной информации, если вы используете linux.

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

Для системы bounces она должна ссылаться на серверную среду. Это можно активировать только при настройке кода на вашем VPS или другом сервере. Я считаю, вы должны увидеть http://www.phpnewsletter.org

Вы можете отслеживать электронные письма и получать квитанции на чтение, добавляя дополнительный код к скрипту php и функции почты (изменения в сообщении электронной почты).

Вот ссылка, которая поможет вам отслеживать рассылки электронной почты для чтения – php script

(Edited)

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

По поставленным параметрам я не совсем уверен. Я знаю, что вы можете получить это от определенных типов почтовых серверов (например, Microsoft Exchange), но я не знаю, поддерживают ли ваши стандартные серверы POP3.

Вы можете получить приличный объем данных автоматически с помощью этого метода. Он будет работать как стандартный рекламный трекер для веб-страниц. Для серверной стороны я бы рекомендовал структуру CMS, такую ​​как Drupal или фреймворк PHP, такой как CodeIgniter.

Если вы поедете на Drupal, то большая часть тяжелого подъема уже будет сделана для вас. Вам просто нужно собрать кусочки головоломки так, как вам нравится. Лично я бы рекомендовал использовать MailChimp для отслеживания ваших писем. У них есть модуль Drupal для интеграции с ним (http://drupal.org/project/mailchimp).