我想编辑以下代码并发送附带附件的电子邮件。附件是一个pdf文件,它位于linux环境下的/home/myuser/sample.pdf下。我应该在下面做些什么改变?
import smtplib
fromaddr = 'myemail@gmail.com'
toaddrs = 'youremail@gmail.com'
msg = 'Hello'
# Credentials (if needed)
username = 'myemail'
password = 'yyyyyy'
# The actual mail send
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
答案 0 :(得分:13)
在这种情况下,您可以使用电子邮件包创建一条消息 -
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
msg = MIMEMultipart()
msg.attach(MIMEText(file("/home/myuser/sample.pdf").read()))
然后发送消息。
import smtplib
mailer = smtplib.SMTP()
mailer.connect()
mailer.sendmail(from_, to, msg.as_string())
mailer.close()
这里有几个例子 - http://docs.python.org/library/email-examples.html
<强>更新强>
由于上述原因,更新链接会产生404 https://docs.python.org/2/library/email-examples.html。谢谢@Tshirtman
答案 1 :(得分:3)
推荐的方法是使用Python的电子邮件模块来正确撰写 格式化的MIME消息。见文档