Присланные Python вложения электронной почты MIME не отображаются в mail.live

У меня есть сценарий Python 3, который использует MIMEMultipart для отправки электронного письма с вложенным файлом.xlsx. Раньше я использовал идентичный скрипт на Py2 для отправки того же сгенерированного файла, с той лишь разницей, что скрипт Py2 собирал информацию из MySQL для создания.xlsx, а скрипт Py3 вместо этого использует PostgreSQL.

msg = MIMEMultipart('alternative')
msg.attach(MIMEText("""HTML stuff""", 'html'))

with open(analysis_file, "rb") as fil:
  msg.attach(MIMEApplication(
                    fil.read(),
                    Content_Disposition='attachment; filename="%s"' % os.path.basename(analysis_file),
                    Name=os.path.basename(analysis_file)
                ))

msg['Subject'] = "SUBJECT"
msg['From']="Me <me@me.com>"
msg['To']= "You <you@you.com>"

server.sendmail(FROMADDR, ["you@you.com"], msg.as_string())

Однако, когда я переключился на версию скрипта Py3, вложение перестало отображаться в mail.live от Microsoft. Символ скрепки, который говорит, что сообщение имеет вложение, все еще появляется, но я не могу найти его.

--РЕДАКТИРОВАТЬ:

Если я настроил автоматическую переадресацию на учетную запись Gmail, вложение.xlsx обычно отображается там; однако, если я отправлю это вручную, это не так.

2 ответа

Решение

Изменения

msg = MIMEMultipart('alternative')

в

msg = MIMEMultipart('html')

починил это.

Сделайте мне одолжение и проверьте, работает ли он с yagmail. Для работы с HTML/ вложениями я думаю, что это действительно может быть полезно: по умолчанию отправляются вещи в HTML, а вложения можно просто сделать, указав путь.

Весь код:

import yagmail
yag = yagmail.SMTP('me@me.com', 'password')
yag.send("you@you.com", "SUBJECT", analysis_file)

Третье поле в send это содержимое, которое может быть списком строк или просто строкой. Если строка может быть загружена как файл, она будет просто прикреплена.

Для получения дополнительной информации, проверьте страницу GitHub. Имейте в виду, я разработчик / сопровождающий.

Другие вопросы по тегам