При отправке писем со вложениями возникла следующая проблема: имена вложений на русском отображаются как noname.
Вложения к письму прикрепляются так:
for f in files or []: part = MIMEBase('application', 'octet-stream') attachment = open(f, "rb") part.set_payload((attachment).read()) encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment', filename=basename(f)) msg.attach(part)
Сравнил тело письма, отправленное из Outlook (вложение отображается корректно) с письмом, отправленным из приложения:
Outlook:
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Тело письма
Content-Type: application/vnd.ms-excel; name="Статистика.csv"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="Статистика.csv"
Тело вложения
Python:
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Тело письма
Content-Type: application/octet-stream
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Статистика.csv"
Тело вложения
Разница только в кодировке тела вложения.
В чем ошибка, помогите разобраться.