2

Python で IMAP 経由で Gmail のメールをバックアップおよび復元できるツールを作成しています。Gmail からバックアップされたメールに奇妙な文字 ^@ が含まれている場合があり、Gmail IMAP で再取り込みできません。

Delivered-To: xxxxx@lxxxxxx
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: <foo.bar@email.com>
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: <x@foo.com>
Date: Mon, 23 Aug 2010 17:58:48 +0200
From: Foo Bar <foo.bar@email.com>
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: bar.foo@email.com <x>
Subject: The subject
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
X-Provags-ID: xxxxxxxxxxx=
Envelope-To: foo.bar@email.com


  Hello All,

blah blah blah


^@

最後に彼らはこの特別なキャラクターです. 途中で他のメールに表示されることがあります。電子メールをディスク (eml 形式) に保存するときは、保存して復活させるだけです。

エンコーディングは正しいようです。

このキャラクターは何ですか?メールをemlに保存するときに何か問題がありますか。

少しのガイダンスをいただければ幸いです。

ありがとう。

4

1 に答える 1

3

簡単な回答: Google に送り返す前に、メールの本文から null 文字を取り除くことができます。**

より長い答え:

古い電子メール ( RFC 822による) では、ヌル文字を使用できました。新しい電子メール ( RFC 2822によると、2003 年頃) にヌル文字を含めることはできません。注 RFC 2822 には、「以前の標準との違い... ASCII 0 (null) が削除されました」と記載されています。

Gmail が SMTP 経由で 822 形式のメールを受け入れる (これがメールが最初に受信トレイに届いた方法です) 可能性は十分にありますが、IMAP 経由では 2822 形式のメールしか受け付けません (これが IMAP 経由で戻すことができない理由です)。

** 注: 電子メールに含まれる MIME ドキュメントからやみくもに null を削除しないでください。RFC 2822 は、「メッセージが 1 から 127 までの US-ASCII 範囲の文字で構成されることを指定しています。[RFC 2822] を拡張する他のドキュメント、特に MIME ドキュメント シリーズ [RFC2045、RFC2046、RFC2047、RFC2048、RFC2049] があります。その範囲外の値を許可します。」

于 2012-10-14T05:06:24.423 に答える