pyhton 发邮件及附件

本文部分内容转自 https://www.cnblogs.com/lystbc/p/7517953.html 感谢~

from email.header import Header

from email.mime.application import MIMEApplication

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from smtplib import SMTP_SSL

import time

email_sender=''#这里是发件邮箱

email_pwd=''#这里是授权码,可在邮箱中进行设置,区别于登录密码

email_receiver='[email protected]'

email_sever=SMTP_SSL('smtp.126.com')#连接126邮箱服务器

email_sever.login(email_sender,email_pwd)#登录邮箱

email_text=MIMEText('正文内容','plain','utf-8')#邮件的内容,和内容的格式。这里是txt/plain,纯文本类型。

email_liction=MIMEMultipart()#创建一个带附件的事例

email_liction['Subject']=Header('title','utf-8')#标题的内容和编码格式

email_liction['From']=email_sender

email_liction['To']=email_receiver

email_liction['Date']=time.ctime()

email_file=MIMEApplication(open('/home/mysys/aaa.txt', 'rb').read())#第一个参数打开文件read()方法读出所有内容,刚好是字符串格式,第二个参数是希望的编码,这种方法比较简单。其中,linux目录/,windows目录\\ 还可以扩展input之类的来选择附件等。

email_file.add_header('Content-Disposition', 'attachment', filename='temp.html')#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法可以得到附件里的文件名。

#filename不能随便命名,因为后缀名会影响到文本的格式。例如把"html"换成"txt",最后加载到邮件的附件就是‘temp.txt’。

email_liction.attach(email_text)#把我们刚才写的邮件内容加进去

email_liction.attach(email_file)#现在我们把编码好的附件也加进去

email_sever.sendmail(email_sender,email_receiver,email_liction.as_string())#由于senemail要传String类型,所以要用.as_string()把内容组合成字符串

email_sever.quit()

你可能感兴趣的:(pyhton 发邮件及附件)