2010-06-01 51 views
2

在Zend_Mail的示例http://framework.zend.com/manual/en/zend.mail.attachments.html他們使用ENCODING_8BIT,但搜索什麼可能會發送給我http://msdn.microsoft.com/en-us/library/ms526992%28EXCHG.10%29.aspx(這聽起來合乎邏輯),這是解釋說,8位編碼對電子郵件沒有意義。用Zend_Mail發送郵件時,Zend_Mime :: ENCODING_8BIT是什麼意思?

編輯:

當我用這個編碼的郵件帶有附件,我收到的郵件在我的郵箱軟件損壞的附件(雷鳥)

在哪些情況下是否有意義使用ENCODING_8BIT?

回答

4

正如大家所說,ENCODING_8BIT代表內容傳輸編碼。 基本上,8BITMIME用於國際化。它使用8位字符集,因此可以發送UTF8字符集中支持的任何字符。

一般來說,非MIME郵件程序發送的8位數據,但不包括任何 MIME頭以將郵件標記爲8位數據。 MIME郵件應該 應付這個沒有任何問題。 [source]

所以基本上沒有真正在有意義使用ENCODING_8BIT了另一種編碼自電子郵件中UTF8是一個標準的今天的情況下。另請注意,大多數MTA(郵件傳輸代理,如Postfix等)都會自動強制編碼爲8BITMIME(UTF-8)。

Here is a good resource關於8BITMIME編碼。

MIME擴展在實踐兩個方面的影響:

  • 的客戶應避免Q-P轉換。
  • 客戶可以在MAIL請求結束時添加額外的 信息:一個空格,後跟 「BODY = 7BIT」或「BODY = 8BITMIME」。
0

不適用於電子郵件,但不適用於附件。如果你在第7頁採取對RFC 2045看看:

RFC2045

「二進制數據」是指其中任何 八位字節序列凡從 允許的數據。

+0

Mh,RFC不是很清楚。我附加了一個二進制文件(800 KB)作爲8位,它似乎損壞該文件。現在我正在使用base64。我仍然對8位的實際使用情況感到困惑? – Alex 2010-06-01 11:56:00

1

Zend_Mime::ENCODING_8BIT設置Content-Transfer-Encoding
Content-Transfer-Encoding定義了以ASCII文本格式表示二進制數據的方法。
example中使用Zend_Mime::ENCODING_8BITBug

用來發送附件,你應該總是使用Zend_Mime::ENCODING_BASE64

+0

是的,但是如下所述,這會導致附件損壞的郵件。那麼這個設置的實際用途是什麼? – Alex 2010-07-21 10:04:16