2016-10-26 3 views
3

Я видел несколько несколько похожих вопросов о переполнении стека уже, но я не смог найти решение своей конкретной проблемы в них.Отправка вложения в HTML-адрес электронной почты с помощью Python

Я пытаюсь использовать Python для отправки HTML-письма с вложением .pdf. Кажется, что он отлично работает, когда я проверяю свою электронную почту на gmail.com, но когда я проверяю сообщение через программу почтового ящика Apple, я не вижу вложения. Любая идея, что вызывает это?

Мой код ниже. Многое из этого копируется из различных мест на переполнение стека, так что я не совсем понимаю, что каждая часть делает, но это, кажется, (в основном) работы:

import smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText      
from email.mime.application import MIMEApplication 
from os.path import basename 
import email 
import email.mime.application 

#plain text version 
text = "This is the plain text version." 

#html body 
html = """<html><p>This is some HTML</p></html>""" 

# Create message container - the correct MIME type is multipart/alternative. 
msg = MIMEMultipart('alternative') 
msg['Subject'] = "Deliverability Report" 
msg['From'] = "[email protected]" 
msg['To'] = "[email protected]" 

# Record the MIME types of both parts - text/plain and text/html 
part1 = MIMEText(text, 'plain') 
part2 = MIMEText(html, 'html') 

# create PDF attachment 
filename='graph.pdf' 
fp=open(filename,'rb') 
att = email.mime.application.MIMEApplication(fp.read(),_subtype="pdf") 
fp.close() 
att.add_header('Content-Disposition','attachment',filename=filename) 

# Attach parts into message container. 
msg.attach(att) 
msg.attach(part1) 
msg.attach(part2) 

# Send the message via local SMTP server. 
s = smtplib.SMTP() 
s.connect('smtp.webfaction.com') 
s.login('NAME','PASSWORD') 
s.sendmail(msg['From'], msg['To'], msg.as_string()) 
s.quit() 

Я не уверен, если это уместно , но я запускаю этот код на сервере WebFaction.

Спасибо за помощь!

ответ

0

Использование

msg = MIMEMultipart('mixed') 

вместо 'альтернативный'

 Смежные вопросы

  • Нет связанных вопросов^_^