私はPython電子メールモジュールの助けを借りて電子メールを生成しています。ここ
は私の質問を実証した、数行のコードです:Python電子メールモジュール:フォームヘッダー「From」とユニコード名+電子メール
msg = email.MIMEMultipart.MIMEMultipart('alternative')
msg['From'] = "[email protected]"
msg.as_string()
Out[7]: 'Content-Type: multipart/alternative;\n boundary="===============9006870443159801881=="\nMIME-Version: 1.0\nFrom: [email protected]\n\n--===============9006870443159801881==\n\n--===============9006870443159801881==--'
あなたが見ることができるように、すべてがフィールドは、電子メールのアリが含まれているから、それはクールだ、ここに大丈夫です。しかし、電子メールの前に名前を追加したいのですが?特に1がUnicode:
ここIn [8]: u.get_full_name()
Out[8]: u'\u0414\u0438\u043c\u0430 \u0426\u0443\u043a\u0430\u043d\u043e\u0432'
In [9]: msg = email.MIMEMultipart.MIMEMultipart('alternative')
In [10]: msg['From'] = "%s <%s>" % (u.get_full_name(), "[email protected]")
In [11]: msg.as_string()
Out[11]: 'Content-Type: multipart/alternative;\n boundary="===============5792069034892928634=="\nMIME-Version: 1.0\nFrom: =?utf-8?b?0JTQuNC80LAg0KbRg9C60LDQvdC+0LIgPGVtYWlsQGF0LmNvbT4=?=\n\n--===============5792069034892928634==\n\n--===============5792069034892928634==--'
あなたはすべての文字列(名前、メールアドレス)はBASE64でエンコードされた(そしてそれも非常に論理的であることを、見ることができる、のMimeMultipartは、その文字列を知っているだろうかユニコードと非ユニコードの部品が含まれています)。
だから、私の質問は:どのように私のようなヘッダの「From」私はかなり作るために、電子メールモジュールに指示する必要があります://www.faqs:
From: =?UTF-8?B?0JLQmtC+0L3RgtCw0LrRgtC1?= <[email protected]> ?
はまた、私は少しRFC2822(HTTPを学びました.org/rfcs/rfc2822.html、p.3.6.2)。
発信者フィールドは、 メッセージの送信元のメールボックスを示します。 「From:」フィールドには、メッセージの作成者である 、つまりメッセージを書く人またはシステムのメールボックス( )が指定されます。 「Sender:」フィールドには、 メッセージの実際の送信を担当するエージェントのメールボックス が指定されています。たとえば、秘書が のメッセージを別の人に送信する場合は、秘書のメールボックスは 「送信者:」フィールドに表示され、実際の作成者のメールボックスは の「差出人」フィールドに表示されます。メッセージの発信者が単一のメールボックスで と示され、作成者と送信者が同一である場合は、 "送信者:"フィールドを使用しないでください(SHOULD NOT)。それ以外の場合は、両方のフィールドにSHOULD が表示されます。
これらの2つのヘッダーを組み合わせる必要がありますか? (送信者と送信者)。送信元のフィールド名とメールアドレスが表示されている私のGmailのメールに気付いたので(ちょっと混乱しました)
ありがとうございました。
AWESOME!これはまさに私が必要なものです、ありがとう! –
私は数時間それを理解しようとしてきました!ありがとう! – Ofir
ありがとう、formataddrの2番目のかっこを混乱させる人は、タプルを表します。 – iownthegame