У меня есть скрипт Python 3, который использует MIMEMultipart для отправки электронной почты с файлом .xlsx, сгенерированным приложением. Раньше я использовал идентичный скрипт на Py2 для отправки того же сгенерированного файла, с той лишь разницей, что скрипт Py2 собирал информацию из MySQL для создания сценариев .xlsx и Py3, вместо этого использует PostgreSQL.Python-отправленные MIME-сообщения электронной почты не отображаются в mail.live
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 <[email protected]>"
msg['To']= "You <[email protected]>"
server.sendmail(FROMADDR, ["[email protected]"], msg.as_string())
Когда я перешел на версию PY3 сценария, однако, прикрепление перестал появляться на mail.live Microsoft. Символ скрепки, в котором говорится, что сообщение имеет прикрепление, все еще появляется, но я не могу его найти.
--edit:
Если настроить автоматическую пересылку на счет Gmail, то .xlsx вложение показывает нормально там; однако, если я пересылаю его вручную, это не так.
есть объяснение для «альтернативного» варианта? (переход на «html» решил мою проблему) –
Что это значит? Я использовал «альтернативу», потому что, по-моему, я читал это где-то в документах, но изменил его на «html». Я понятия не имею, в чем разница. –
Я также исправил эту проблему, перейдя из «альтернативного» в «смешанный», –