Gmail IMAP php почта отправляется в ответ на электронную почту

Я хочу отправить электронное письмо в качестве ответа в gmail через мою систему Laravel CRM.

Мой код выглядит следующим образом:

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.Auth::user()->f_name.' '.Auth::user()->l_name.'<'.$gmail_address.'>'." \r\n" .
                        'Reply-To:  <'.$gmail_address.'>'. "\r\n" .
                        'Subject: '.$subject."\r\n".
                       'To: '.$to."\r\n".
                        'In-Reply-To:  <[email protected]>'. "\r\n" .
                        'References: <[email protected]>'. "\r\n" .
                        'X-Mailer: PHP/' . phpversion();

imap_mail ( $to , $subject ,$body,$headers);

Но он отправляет его как новое электронное письмо, то есть не как ответ.

В идеале он должен добавить «Re:» к теме и добавить фактическое электронное письмо в конце тела ответа.

Любая помощь, пожалуйста..


person Adnan Tahir Hashmi    schedule 25.04.2016    source источник
comment
Вы должны добавить исходное письмо самостоятельно. IMAP не сделает это за вас. В методе imap_mail не происходит никакой магии.   -  person Aleksander Wons    schedule 25.04.2016
comment
@awons, но тогда это будет новое письмо, а не ответ, я хочу сделать это как тред в gmail.   -  person Adnan Tahir Hashmi    schedule 25.04.2016
comment
Я не понимаю. Попробуйте с помощью imap_mail_compose создать соответствующие заголовки. С помощью In-Reply-To и References вы можете сообщить Gmail, что это ответ, но вы должны сами прикрепить исходное сообщение.   -  person Aleksander Wons    schedule 25.04.2016
comment
вы нашли ответ?   -  person Demetrio Guilardi    schedule 21.03.2020


Ответы (1)


Ваши заголовки In-Reply-To и References жестко запрограммированы на какое-то магическое значение; это, вероятно, не то, что вы хотите сделать.

Вот как я бы улучшил код:

  • Используйте библиотеку, которая обрабатывает довольно низкоуровневые биты RFC2047, RFC2231 и особенно RFC 5322. Весьма вероятно, что любые символы, отличные от ascii, в l_name вашего пользователя создают несоответствующее сообщение. Прочитайте весь RFC5322, чтобы понять, как работает электронная почта. Читайте о различных кодировках, которые вступают в игру.
  • Отслеживайте Message-Id сообщений, на которые вы отвечаете, и соответственно настраивайте собственные заголовки In-Reply-To и References.
person Jan Kundrát    schedule 30.04.2016