web-dev-qa-db-ja.com

maildir内の単一のファイルを読み取るにはどうすればよいですか?

Linux開発システムでは、 fakemail を使用して、メールを送信するのではなく、ディレクトリに書き込みます。メールファイルには、メールのヘッダーとテキストがquoted-printable、text/plainとしてUTF-8で含まれています。単一のメールファイルを読み取ってquoted-printableを「デコード」して、改行と特殊文字が正しく表示されるようにするにはどうすればよいですか?

次に、改行と特殊文字を含むドイツ語のメールファイルの例を示します。

Message-ID: <[email protected]>
Date: Fri, 07 Oct 2011 10:53:26 +0200
Subject: Registrierung
From: [email protected]
To: [email protected]
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hallo,

Sie haben sich auf Meinserver.de als Benutzer regist=
riert. Um Ihre
Registrierung abzuschlie=C3=9Fen, klicken Sie auf folg=
enden Link:

http://meinserver.de/benutzer/bestaetigen/3lk6lp=
ga1kcgcg484kc8ksg

特殊文字を適切な対応文字で置き換え、quoted-printableエンコーディング(末尾に「=」が付いているもの)によって挿入された改行を削除してください。

7
chiborg

では、グーグル検索とmailqによる役立つコメントに基づいて、ここで自分の質問に答えます。

つまり、私は mutt をインストールして使用しました。設定を少しいじる必要がありました。fakemailがメールファイルを作成していたディレクトリmy_dir内に、dirs newcurおよびtmpを作成しましたfakemailmy_dir/newを指すようにしました。それから私はムットを始めました

mutt -f my_dir

これで、新しいメールを確認したり、古いメールを確認したりできます。ウムラウトは適切に表示されます-完璧です!

10
chiborg

答えは、「やるだけ」です。

お好みのプログラミング言語のAPIを使用して MIMEメッセージ を解析し、 quoted-printablebase64 をデコードします。または、リンクされた標準を実装するソフトウェアを作成することにより、自分で行います。

どちらのオプションも機能します。正しいものを選んで、それに挑戦してください。 (これはServerfaultの範囲外であるため、詳細についてはStackoverflowを参照してください)。

3
mailq