我正在寫一個能夠通過IMAP在Python中備份和恢復Gmail中的電子郵件的工具。 在某些情況下,從Gmail備份的電子郵件包含奇怪的字符:^ @然後無法由Gmail IMAP重新導入。IMAP服務器無法接收的電子郵件中的奇怪字符
Delivered-To: [email protected]
Received: by 1x.xx.xx.xx with SMTP id jjjjjjjj;
Tue, 14 Jun 2011 16:56:26 -0700 (PDT)
Received: by x.x.x.x with SMTP id xxxx.xxx;
Tue, 14 Jun 2011 16:56:16 -0700 (PDT)
Return-Path: <[email protected]>
Delivery-Date: Mon, 23 Aug 2010 17:58:56 +0200
Received: from xxxxx (xxxxx [x.x.x.x])
by xxxx (node=xxx) with ESMTP (xxx)
id xxx ; Mon, 23 Aug 2010 17:58:56 +0200
Received: from [x] (x)
by x (x) with x (x)
id x; Mon, 23 Aug 2010 17:58:50 +0200
Message-ID: <[email protected]>
Date: Mon, 23 Aug 2010 17:58:48 +0200
From: Foo Bar <[email protected]>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2
MIME-Version: 1.0
To: [email protected] <x>
Subject: The subject
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
X-Provags-ID: xxxxxxxxxxx=
Envelope-To: [email protected]
Hello All,
blah blah blah
^@
最後他們是這個特殊字符。有時會出現在中間的其他電子郵件中。 當我將電子郵件存儲到磁盤(eml格式)時,我只需保存並恢復它即可。
編碼看起來是正確的。
這個角色是什麼? 當我將電子郵件存儲在eml中時,我是否做錯了什麼?
一些指導將不勝感激。
謝謝。
'^ @'是一個空字符。不知道它如何到達那裏。你能粘貼你的代碼嗎?參考:http://www.robelle.com/smugbook/ascii.html – ZnArK
電子郵件是8位,「內容傳輸編碼:8位」。並非所有系統/軟件都能處理8位郵件。正如@ZnArK所說,'^ @'是NULL的常見表示。 – MattH
我認爲它是在電子郵件最初創建時插入的。然後,Gmail Imap不想接受它。我有一個問題,但。有IMAP通信和SSL。你認爲SSL層可以添加它嗎?代碼非常簡單,我通過python imaplib獲取電子郵件並將其保存在文件中。該文件以'wb'打開。如果您有任何想法,請告知我。謝謝 – zoobert