Отслеживание ответов с помощью PhpMailer и IMAP_SEARCH в PHP - PullRequest
0 голосов
/ 25 мая 2018

Я использую PHPMailer для отправки сообщения и PHP imap_search для поиска по почте.Мой сценарий -

  1. Пользователь отправляет электронное письмо от получателей PHPMailer.(ВЫПОЛНЕНО)
  2. С помощью электронной почты пользователь отправляет пользовательское сообщение с идентификатором скажем (ГОТОВО)
  3. Получатель отвечает на электронное письмо.

Здесь мне нужно найти ответ в почтовом ящике пользователя.Мне нужно искать, если пользователь получает какой-либо ответ по электронной почте.Я не уверен, как я могу это сделать.

Я использую SMTP GMAIL для пользователя для отправки электронных писем.

Спасибо

1 Ответ

0 голосов
/ 29 мая 2018

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

$mid="<" . md5('MAXIFY'.(idate("U")-1000000000).uniqid()).'-sales@mydomain.com>';
$mail->MessageID = $mid;
$mail->addCustomHeader('In-Reply-To', $mid);
$mail->send();

Теперь для поиска по электронной почте мы использовали imap_search.

$date="25-May-2018";
$emails = imap_search($inbox,'ON "'.$date.'"' );
foreach($emails as $email_number)
{
/* get information specific to this email */ 
$overview = imap_fetch_overview($inbox,$email_number,0);
print_r($overview);
}

В обзоре содержится подробная информация об идентификаторе сообщения и т. Д. Отсюда вы можете отслеживать, является ли это ответом или нет.Однако в нескольких письмах мы обнаружили, что идентификатор сообщения отсутствует.Итак, мы добавляем уникальный идентификатор в наше тело электронной почты и используем наш критерий поиска для imap_search как -

$emails=imap_search($inbox,'TEXT "5b0b72417f673" ');

Я не нашел другого способа отследить ответ.

...