我環顧四周,但無法找到有關我面臨的問題的答案。發送到Outlook的PHP郵件()中斷代碼
與我的問題最相似的是:emails sent with php mail don't show up correctly in outlook,但我檢查瞭解決方案沒有爲我工作。
我基本上寫一個PHP腳本,發送電子郵件,其中的表。但問題是,如果我通過Gmail收到它,電子郵件顯示正常,但根本沒有通過Outlook。
檢查電子郵件,不要讓它通過到Outlook的源代碼,給出了一些原因換行符(又不是在Gmail中存在)
如:
<td> [email protected]
tt.com </td>
當它應該出現如:
<td> [email protected] </td>
在我的PHP代碼,我甚至嘗試刪除行和空格(如應該有在電子郵件中沒有空格)
$rmv = array("\n");
$lead_email = str_replace($rmv, "", $lead_email);
$rmv = array("\r");
$lead_email = str_replace($rmv, "", $lead_email);
$rmv = array(" ");
$lead_email = str_replace($rmv, "", $lead_email);
僅供參考,我的郵件標題如下:
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= 'From: [email protected]' . "\n";
順便說一句,我應該使用ISO-8859-1或UTF-8?我偶爾遇到歐洲人物的名字。
任何幫助非常感謝!
編輯:所以我正在檢查源代碼,並發現一些有趣的東西。信息很長,但只顯示3-4行。我發現它被截斷大約991個字符,因此電子郵件分手..這是什麼與Mime版本1.0? 如何增加可以接收的字符數?我嘗試在每個表格行之後添加'\ r \ n',但是4封電子郵件中的一封郵件仍然因爲某種原因仍然不顯示。
編輯2:謝謝大家的幫助!我終於想通了,在2009年追溯供將來參考論壇上發帖,請參閱最後發帖:
使用像Swiftmailer這樣的庫,而不是使用mail() - 它會讓所有錯綜複雜的東西都適合你。 – halfer 2012-02-15 22:46:41
對於Windows(Outlook)使用回車換行符\ r \ n – Aknosis 2012-02-15 22:58:29
是。在大多數情況下,outlook無法正確處理html。我認爲這是因爲它使用ms字去渲染htmls。 – iWantSimpleLife 2012-02-17 01:35:38