在这种情况下,您使用电子邮件包创建了一条消息-
from email.MIMEMultipart import MIMEMultipartfrom email.MIMEText import MIMETextfrom email.MIMEImage import MIMEImagemsg = MIMEMultipart()msg.attach(MIMEText(open("/home/myuser/sample.pdf").read()))
然后发送消息。
import smtplibmailer = 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
Update2:附加pdf的最简单方法
附加
def send_email_pdf_figs(path_to_pdf, subject, message, destination, password_path=None): ## credits: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script from socket import gethostname #import email from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import json server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() with open(password_path) as f: config = json.load(f) server.login('me@gmail.com', config['password']) # Craft message (obj) msg = MIMEMultipart() message = f'{message}nSend from Hostname: {gethostname()}' msg['Subject'] = subject msg['From'] = 'me@gmail.com' msg['To'] = destination # Insert the text to the msg going by e-mail msg.attach(MIMEText(message, "plain")) # Attach the pdf to the msg going by e-mail with open(path_to_pdf, "rb") as f: #attach = email.mime.application.MIMEApplication(f.read(),_subtype="pdf") attach = MIMEApplication(f.read(),_subtype="pdf") attach.add_header('Content-Disposition','attachment',filename=str(path_to_pdf)) msg.attach(attach) # send msg server.send_message(msg)
灵感/来源:http : //linuxcursor.com/python-
programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-
script