following zawiedzie:Python3: Wysłać wiadomość e-mail zawierającą dane binarne?
>>> a = email.message.Message()
>>> a.set_payload(b'some data')
>>> a.as_string()
TypeError: string payload expected: <class 'bytes'>
zawiedzie również za pomocą generatora jawnie, i nazywając flatten
. Treść komunikatu jest konwertowana na kod ASCII, mimo to stosowane są transporty, a następnie ostatecznie konwertowane na bajty, więc dlaczego nie można ustawić ładunku bajtów?
Co zrobić, aby uzyskać najlepiej nie-MIME wiadomość z bajtowym ładunkiem, który zaakceptuje smtplib.SMTP.send_message
?
Prawdopodobnie będziesz musiał zakodować go na łańcuchu. Nie wiem, co jest dostępne w Pythonie, ale zazwyczaj będzie w Base-64. –
Bez względu na to, jak to zrobisz, jeśli możesz to zrobić, poczta nie-ASCII, nie-MIME będzie miała problemy po stronie odbierającej i prawdopodobnie w pośrednich programach do przesyłania poczty. Gdzie "kłopot" oznacza "trudny do interpretacji" lub "odrzucony" lub "odrzucony". – msw
@msw - Śmierć agentom pocztowym, którzy są nadal tylko ASCII! :) – mac