的following失敗:Python3:發送包含二進制數據的電子郵件?
>>> a = email.message.Message()
>>> a.set_payload(b'some data')
>>> a.as_string()
TypeError: string payload expected: <class 'bytes'>
它也沒有使用發電機明確,並呼籲flatten
。消息正文被轉換爲ASCII,應用轉義,然後最終轉換爲字節進行傳輸,所以爲什麼我不能設置字節有效載荷?
我該如何去獲得一個最佳的非MIME消息,其中smtplib.SMTP.send_message
將接受字節有效載荷?
您可能必須將其編碼爲字符串。我不知道Python中有什麼可用,但通常是Base-64。 –
無論你如何操作,如果你可以做到這一點,非ASCII,非MIME類型的郵件將在接收方和可能在任何中間郵件傳輸代理上出現問題。 「麻煩」意思是「難解釋」或「反彈」或「丟棄」。 – msw
@msw - 死亡的郵件代理誰仍然只有ASCII! :) – mac