@Qwerty_qwert1

Как ОТВЕТИТЬ на письмо через PHPMailer?

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

$email - почта пользователя

$subject - Тема из письма пользователя

$ticket_id - Целое число (номер обращения) генерирую сам

$message_id - id письма (формат: <example@mail.gmail.com>)


Код ниже отлично отправляет письма, но не ответом

public function sendMail($email, $subject, $ticket_id, $message_id)
    {
        try {
            $text = "Добрый день!<br>Ваше обращение принято под номером ".$ticket_id;
            $this->mail->addAddress($email);
            $this->mail->Subject = "Re: " . imap_utf8($subject . " (Обращение #" . $ticket_id . ")");
            $this->mail->msgHTML($text);
            return $this->mail->send();
        } catch (Exception $error) {
            return $error;
        }


Пробовал делать так:

$this->mail->addCustomHeader('In-Reply-To', $message_id);
$this->mail->addCustomHeader('References', $message_id);


Не сработало. Подскажите как решить данную задачу?
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Для этого в письмо-ответ надо добавить заголовок In-Reply-To с указанием значения заголовка Message-Id оригинального письма. В заголовок References ответа надо скопировать все ID из заголовка References оригинала и дописать после пробела значение заголовка Message-Id оригинального письма.

В вашем коде я не вижу как вы получаете $message_id, который должен быть вытащен из оригинального письма, соответственно скорее всего отсутствие указание на изначальное письмо не позволяет определить к какой цепочке относится ответ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы