Я пишу просто приложение MUA, и у меня возникают проблемы с генерацией сообщения.Python email - поддержка 8 бит MIME
Я хочу, чтобы моя программа автоматически определяла, поддерживает ли SMTP-сервер 8bit MIME
, и если да, то он будет генерировать сообщение, в котором часть с открытым текстом будет закодирована на 8 бит. В заголовке MIME это должно выглядеть так:
Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit
Основная проблема заключается в том, что python3.4 smtplib не имеет 8-bit encoder
, просто только base64
и quoted printable
В моем случае это выглядит, что:
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'subject'
text = MIMEText("text here".encode('utf-8'), _charset='utf-8')
msg.attach(text)
# then sending...
text.as_string()
вызов возвращает
'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: base64\n\ndGV4dCBoZXJl\n'
Это сообщение неплохое, но я хотел бы иметь 8-bit
enconding, а не base64
.
Вопрос: действительно ли я осужден за использование base64
?
В email.encoders
только encode_base64
и encode_quopri
функции
Я сражался, чтобы сделать первый локальный метод работы, но он просто не работал, не мог понять. –