Python发送邮件需要smtplib和email两个模块。也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单。今天,就来好好学习一下使用Python发送邮件吧。
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
1.邮件正文是文本的格式
# -*- coding: UTF-8 -*- from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import sys import csv import xlrd from pyExcelerator import * import os import xlwt from xlutils.copy import copy import pyExcelerator import datetime import time reload(sys) sys.setdefaultencoding("utf-8") mailto_list = [""] # 邮件接收方的邮件地址 mail_host = "smtp.exmail.qq.com" # 邮件传送协议服务器 mail_user = "" # 邮件发送方的邮箱账号 mail_pass = "" # 邮件发送方的邮箱密码 def send_mail(to_list, sub, content): me = "天才白痴梦"+"<"+mail_user+">" msg = MIMEText(content, _subtype='plain', _charset='utf-8') msg['Subject'] = sub # 邮件主题 msg['From'] = me msg['To'] = ";".join(to_list) try: server = smtplib.SMTP() server.connect(mail_host) server.login(mail_user, mail_pass) server.sendmail(me, to_list, msg.as_string()) server.close() return True except Exception, e: print str(e) return False if __name__ == '__main__': sub = "天才白痴梦" content = '...' if send_mail(mailto_list, sub, content): print "发送成功" else: print "发送失败"
2.邮件正文是表格的格式:由于是表格,所以我们选择HTML来实现表格的功能,邮件上面显示的就是HTML实现的内容了。
# -*- coding: UTF-8 -*- from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import sys import csv import xlrd from pyExcelerator import * import os import xlwt from xlutils.copy import copy import pyExcelerator import datetime import time reload(sys) sys.setdefaultencoding("utf-8") mailto_list = [""] # 邮件接收方的邮件地址 mail_host = "smtp.exmail.qq.com" # 邮件传送协议服务器 mail_user = "" # 邮件发送方的邮箱账号 mail_pass = "" # 邮件发送方的邮箱密码 def send_mail(to_list, sub, content): me = "天才白痴梦"+"<"+mail_user+">" # 和上面的代码不同的就是,这里我们选择的是html 的格式 msg = MIMEText(content, _subtype='html', _charset='utf-8') msg['Subject'] = sub # 邮件主题 msg['From'] = me msg['To'] = ";".join(to_list) try: server = smtplib.SMTP() server.connect(mail_host) server.login(mail_user, mail_pass) server.sendmail(me, to_list, msg.as_string()) server.close() return True except Exception, e: print str(e) return False if __name__ == '__main__': sub = "天才白痴梦" html = '<html></html>' if send_mail(mailto_list, sub, html): print "发送成功" else: print "发送失败"
3.邮件正文是图片的格式:要把图片嵌入到邮件正文中,我们只需按照发送附件的方式,先把邮件作为附件添加进去,然后,在HTML中通过引用src="/UploadFiles/2021-04-08/cid:0">
def send_mail(to_list, sub, content): me = "天才白痴梦"+"<"+mail_user+">" msg = MIMEMultipart() msg['Subject'] = sub # 邮件主题 msg['From'] = me msg['To'] = ";".join(to_list) txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8') msg.attach(txt) # <b>:黑体 <i>:斜体 msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="/UploadFiles/2021-04-08/cid:image1">4.发送邮件附件:邮件附件是图片
def send_mail(to_list, sub, content): me = "天才白痴梦"+"<"+mail_user+">" msg = MIMEMultipart() msg['Subject'] = sub # 邮件主题 msg['From'] = me msg['To'] = ";".join(to_list) txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8') msg.attach(txt) # # <b>:黑体 <i>:斜体 # msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="/UploadFiles/2021-04-08/cid:image1">5.发送群邮件:同时发送给多人
mailto_list = [""] # 邮件接收方的邮件地址
上面这一行代码是邮件接收方的邮件地址,如果我们需要给多人发送邮件的话,就只需要把对方的邮件帐号绑在这一个列表里就ok了。加密SMTP
使用标准的25端口连接SMTP服务器时,使用的是明文传输,发送邮件的整个过程可能会被窃听。要更安全地发送邮件,可以加密SMTP会话,实际上就是先创建SSL安全连接,然后再使用SMTP协议发送邮件。
方法:只需要在创建SMTP对象后,立刻调用starttls()方法,就创建了安全连接。
smtp_server = 'smtp.qq.com' smtp_port = 25 # 默认端口号为25 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # 剩下的代码和前面的一模一样: server.set_debuglevel(1) # 打印出和SMTP服务器交互的所有信息以上就是关于Python发送邮件详细解析,希望对大家的学习有所帮助。
Python,邮件
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。