【Python 应用篇】Email 邮件发送( 二 )


msg = MIMEText('你好!','html','utf-8') #发送HTML格式邮件就只需要把对应的第二个参数改为html即可
完整例子:
'''程序描述: 该脚本程序,用于完成简单的邮件发送功能从文本文件中,提取内容,并发送给指定邮箱''''''作者 = xxxxx ''''''日期 = 2022.05.10 ''''''版本号 = ver1.0'''import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.header import Headerimport osimport syscontext = ''''' emial contents source from : '''f = open('come_back.txt', 'rt', encoding = 'utf-8')for line in f :#context.append(\line)context = context + linef.close()#print(context)del contextcontext = ' 你好!'# Step 1 : 服务器准备 # 1.1 连接邮箱服务器con = smtplib.SMTP_SSL('smtp.163.com', 465)# 1.2 登录邮箱con.login('xxx@163.com', 'xxx')# Step 2: 准备数据# 2.1 创建邮件对象msg = MIMEMultipart()# 2.2 设置邮件主题subject = Header('Email Test', 'utf-8').encode()msg['Subject'] = subject# 2.3 设置邮件发送者msg['From'] = 'xxx@163.com '# 2.4 设置邮件接受者msg['To'] = 'xxx@163.com'# 2.5 添加文字内容#text = MIMEText(context, 'plain', 'utf-8')text = MIMEText(context, 'html', 'utf-8')msg.attach(text)# Step3.发送邮件con.sendmail('xxx@163.com','xxx@163.com', msg.as_string()) # p1 = fromer. p2 = sendercon.quit()
2.3发送带附件的邮件

【Python 应用篇】Email 邮件发送

文章插图
发送带附件的邮件,首先要创建()实例,然后构造附件,如果有多个附件,可依次构造,最后利用.smtp发送 。
#coding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header#发送邮件服务器smtpserver = 'xxxxx'#发送邮箱用户名和密码user = 'xxxxxx'password = 'xxxxxx'#发送邮箱sender = 'xxxxx'#接受邮箱receiver = 'xxxxxxx'#创建一个带附件的实例message = MIMEMultipart()message['From'] = Header('Python 测试','utf-8')message['To'] = Header('测试','utf-8')subject = 'Python SMTP邮件测试'message['Subject'] = Header(subject,'utf-8')#邮件正文内容message.attach(MIMEText('这是测试Python发送附件功能....','plain','utf-8'))#构造附件1,传送当前目录下的test.txt文件att1 = MIMEText(open('123.txt','rb').read(),'base64','utf-8')att1['Content-Type'] = 'application/octet-stream'#这里的filename可以任意写,写什么名字 邮件中就显示什么名字att1['Content-Disposition'] = 'attachment;filename:"123.txt"'message.attach(att1)smtp = smtplib.SMTP()smtp.connect(smtpserver,25)smtp.login(user,password)smtp.sendmail(sender,receiver,message.as_string())smtp.quit()
小结
使用的发送邮件十分简单,只要掌握了各种邮件类型的构造方法,正确设置好邮件头,就可以顺利发出 。
构造一个邮件对象就是一个对象,如果构造一个对象,就表示一个文本邮件对象,如果构造一个对象,就表示一个作为附件的图片,要把多个对象组合起来,就用对象,而可以表示任何对象 。它们的继承关系如下:
+-
+-
+-
+-
+-
+-
【【Python 应用篇】Email 邮件发送】这种嵌套关系就可以构造出任意复杂的邮件 。你可以通过email.mime文档查看它们所在的包以及详细的用法 。