2016-04-25 490 views
1

我想通過我的Laravel CRM系統發送郵件作爲Gmail中的回覆。Gmail IMAP php郵件作爲電子郵件的答覆發送

我的代碼如下:

$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:」主題並追加實際的電子郵件。

任何幫助,請..

+0

您必須自行附加原始郵件。 IMAP不會爲你做。在imap_mail方法中沒有魔法發生。 –

+0

@awons,但它會是一個新的郵件,而不是一個回覆,我想要像gmail中的線程那樣做。 –

+1

我不關注。用imap_mail_compose嘗試創建適當的標題。通過「In-Reply-To」和「參考資料」,您可以告訴Gmail它是回覆,但您必須親自附上原始郵件。 –

回答

0

In-Reply-ToReferences頭被硬編碼到一些魔法值;這可能不是你想要做的。

這是我怎麼會提高代碼:

  • 使用它處理RFC2047,RFC2231和RFC特別是5322你的水平還比較低位的庫。用戶的l_name中的任何非ascii字符很可能會生成不符合規定的消息。閱讀整個RFC5322以瞭解電子郵件的工作原理。閱讀關於各種編碼的內容。
  • 跟蹤您正在回覆的消息的Message-Id,並相應地設置您自己的In-Reply-To & References標題。