followingは失敗します。Python3:バイナリデータを含むメールを送信しますか?
>>> a = email.message.Message()
>>> a.set_payload(b'some data')
>>> a.as_string()
TypeError: string payload expected: <class 'bytes'>
それも失敗した明示的に発電機を使用して、そしてflatten
を呼び出します。メッセージ本体はASCIIに変換され、エスケープされ、最後に送信用のバイトに変換されます。なぜバイトペイロードを設定できないのですか?
smtplib.SMTP.send_message
が受け入れるバイトペイロードを使用して、好ましくは非MIMEメッセージを取得するにはどうすればよいですか?
おそらく文字列にエンコードする必要があります。私はPythonで何が利用できるのか分からないが、通常Base-64にあるだろう。 –
あなたがそれを行う方法にかかわらず、それを行うことができれば、非ASCII形式の非MIMEタイプのメールは受信側で、おそらく中間のメール転送エージェントで問題になるでしょう。 「トラブル」とは「解釈が困難」または「バウンス」または「破棄」を意味します。 – msw
@msw - まだASCIIだけのメールエージェントへの死! :) – mac