2013-05-17 50 views
1

Im購買後使用IPN向客戶發送郵件。除了一件令人討厭的事情之外,所有事物都進展順利。當我測試買我的郵件作爲買家的產品時,我的郵件收件箱中的郵件如下所示:http://snag.gy/grrMy.jpg < - 它本身具有雙重主題,第一個主題沒有更改爲UTF-8 - 爲什麼會這樣?如果我點擊該郵件突然只有UTF-8編碼對象將顯示(按預期)是這樣的:http://snag.gy/k5VyF.jpg

這裏是我使用的PHP代碼:

$to = filter_var($ipn_post_data[payer_email], FILTER_SANITIZE_EMAIL); 
     $date = date('Y-m-d'); 
     $subject = "Tack för Ert köp!/Thank you for your order!"; 
     $headerFields = array(
    'Date: ' . date('r', $_SERVER['REQUEST_TIME']), 
     "Subject: =?UTF-8?Q?".imap_8bit($subject)."?=", 
     "From: {$to}", 
    "MIME-Version: 1.0", 
    "Content-Type: text/html;charset=utf-8" 
     ); 
mail($to, $subject, $message, implode("\r\n", $headerFields)); 

所以,唯一的「問題「實際上,郵件主題的收件箱會因第一個編碼錯誤而翻倍,而且看起來很糟糕。任何人都有這方面的投入?

回答

1

您將$subject改爲mail()兩次 - 一次在第二個參數中,一次在第四個作爲$headerFields的一部分。

嘗試通過null作爲第二個參數。

+0

Omg你是對的,我回來很快與解決方案時,我測試了一些,謝謝兄弟! –

+0

正如Blazemonger指出的那樣,我實際上通過了$主題兩次而沒有意識到這一點。這個代碼只是發送UTF-8編碼的$ subject:mail($ to,NULL,$ message,implode(「\ r \ n」,$ headerFields)); –

+0

另一件事 - 在句子「歡迎回到energyshop.se,只要你喜歡!」中的「每當」一詞!在我使用的webhost one.com之外的郵件收件箱中是不同的,並且在我也發送相同郵件的webhost郵件中,但是作爲副本。它具有完全相同的代碼,但在webhost外部的郵件中,它被解釋爲「每當」,但在副本中,在網絡主機的郵件中,其被解釋爲在該詞的中間具有空白的「whene ver」 。我已經將它複製到記事本中,並確實有一個空白區域。也不是非常重要,但有趣。你知道爲什麼嗎? –