Gmail IMAP php邮件作为电子邮件的回复发送

时间:2016-04-25 12:06:57

标签: php gmail imap reply

我想通过我的Laravel CRM系统在gmail中发送电子邮件作为回复。

我的代码如下:

$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:  <56F15324.7050704@xxxx.xxx>'. "\r\n" .
                        'References: <56F15324.7050704@xxxx.xxx>'. "\r\n" .
                        'X-Mailer: PHP/' . phpversion();

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

但它将其作为新邮件发送,即不作为回复。

理想情况下,应将“Re:”添加到主题中,并在回复电子邮件正文末尾附加实际的电子邮件。

任何帮助请...

1 个答案:

答案 0 :(得分:0)

您的In-Reply-ToReferences标题被硬编码为某个神奇的值;这可能不是你想要做的。

以下是我改进代码的方法:

  • 使用一个库来处理RFC2047,RFC2231甚至RFC 5322的相当低级别的位。您的用户l_name中的任何非ascii字符很可能会产生不符合要求的消息。阅读整个RFC5322以了解电子邮件的工作原理。阅读有关各种编码的内容。
  • 跟踪您回复的邮件的Message-Id,并设置您自己的In-Reply-To&amp;相应地References标题。