Я пытаюсь создать небольшой скрипт для создания билетов, но я застрял в этой части, где мне нужно отобразить разговор по электронной почте между пользователем и группой поддержки.
Сценарий работает так:
Форма заполняется пользователем, после отправки данных создается заявка, а электронная почта, содержащая основную информацию о заявке, отправляется в группу поддержки.
Группа поддержки отвечает на почту с некоторыми инструкциями
- Этот диалог между Пользователем и Группой поддержки должен отображаться на странице заявки с текущимикод Я сталкиваюсь со следующей проблемой:
Если количество писем в цепочке является ODD, письма отображаются правильно (под нечетным я имею в виду числа ODD, 1/3/5/7 и т. д.)
Если количество писем равно ДАЖЕ, некоторые ответы отсутствуют в ветке.
Вот код:
<?php
$imap = imap_open('{mail.mail.eu:993/imap/ssl}INBOX', 'mail@mail.com', 'Mailpass');
//Testing value
$value2 = '6';
$subject = 'Escalation Ticket No.: '.$value2.' has been created and assigned to you.';
$threads = array();
//remove re: and fwd:
$subject = trim(preg_replace("/Re\:|re\:|RE\:|Fwd\:|fwd\:|FWD\:/i", '', $subject));
//search for subject in current mailbox
$results = imap_search($imap, 'SUBJECT "'.$subject.'"', SE_UID);
//because results can be false
if(is_array($results)) {
//now get all the emails details that were found
$emails = imap_fetch_overview($imap, implode(',', $results), FT_UID);
//foreach email
foreach ($emails as $email) {
//add to threads
//we date date as the key because later we will sort it
$threads[strtotime($email->date)] = $email;
}
}
//now reopen sent messages
imap_reopen($imap, '{mail.mail.com:993/imap/ssl}INBOX.Sent');
//and do the same thing
//search for subject in current mailbox
$results = imap_search($imap, 'SUBJECT "'.$subject.'"', SE_UID);
//because results can be false
if(is_array($results)) {
//now get all the emails details that were found
$emails = imap_fetch_overview($imap, implode(',', $results), FT_UID);
//foreach email
foreach ($emails as $email) {
//add to threads
//we date date as the key because later we will sort it
$threads[strtotime($email->date)] = $email;
}
}
//sort keys so we get threads in chronological order
ksort($threads);
foreach ($threads as $key => $object) {
$kee = $object->msgno;
$qprint = imap_fetchbody($imap, $kee, 2);
}
echo quoted_printable_decode($qprint);
?>