New submission from Segev Finer <segev...@gmail.com>:

According to https://tools.ietf.org/html/rfc6152 you should only send an 8bit 
email body when the server advertises 8BITMIME in the EHLO, and you should 
declare it with BODY=8BITMIME in the MAIL command.

The default cte_type is 8bit for the new default email policy which is what 
will be used by smtplib.send_message when it calls BytesGenerator.flatten, but 
it will not set BODY=8BITMIME even if the message has any 8-bit characters. It 
will only set BODY=8BITMIME if the message uses any utf-8 mail/from addresses. 
This means that a message with ASCII addresses and an 8-bit utf-8 body will be 
sent without BODY=8BITMIME (I think that's actually quite common).

What should be done is checking if the server advertises 8BITMIME, and if it 
doesn't use cte_type=7bit; if it does we should set BODY=8BITMIME if the policy 
is using cte_type=8bit.

I don't know whether any real email server chokes on this. But it's best to 
follow the RFC, I think.

----------
components: Library (Lib), email
messages: 311947
nosy: Segev Finer, barry, r.david.murray
priority: normal
severity: normal
status: open
title: smtplib.send_message mishandles 8BITMIME RFC 6152
type: behavior
versions: Python 3.5, Python 3.6, Python 3.7, Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32814>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to