龙腾天朝,九星天辰诀 笔趣阁,会昌新闻
import smtplib from email.mime.text import mimetext from email.mime.application import mimeapplication from email.mime.multipart import mimemultipart
方式一:不使用ssl加密
smtp = smtplib.smtp(host="smtp.163.com", port=25)
方式二:使用ssl加密
smtp = smtplib.smtp_ssl(host="smtp.163.com", port=465)
*注意:传host参数时,如果是qq邮箱就改成'smtp.qq.com'
smtp.login(user="发件人地址", password="授权码")
1、准备内容
f_user = "发件人地址" t_user = "收件人地址" content = "邮件的正文" subject = "邮件的主题"
2、使用email构造邮件
msg = mimetext(content, _subtype='plain', _charset="utf8") # 添加发件人 msg["from"] = f_user # 添加收件人 msg["to"] = t_user # 添加邮件主题 msg["subject"] = subject
1、准备内容
f_user = "发件人地址" t_user = "收件人地址" content = "邮件的正文" subject = "邮件的主题" # 读取要发送附件的内容 file_content = open("附件文件名", "rb").read()
2、使用email构造邮件
(1)构造一封多组件的邮件
msg = mimemultipart()
(2)往多组件邮件中加入文本内容
text_msg = mimetext(content, _subtype='plain', _charset="utf8") msg.attach(text_msg)
(3)往多组件邮件中加入文件附件
file_msg = mimeapplication(file_content) file_msg.add_header('content-disposition', 'attachment', filename='发送附件的名称(可自定义)') msg.attach(file_msg)
3、添加发件人、收件人、邮件主题
# 添加发件人 msg["from"] = f_user # 添加收件人 msg["to"] = t_user # 添加邮件主题 msg["subject"] = subject
smtp.send_message(msg, from_addr=f_user, to_addrs=t_user)
像这样上面这样写发送邮件,写一次还好,如果说一个项目中多个地方都需要用发送邮件,那就显得笨重了,所以呢,这个时候就需要给上面内容做一个封装,供项目中所有用到发送邮件的地方都可以直接调用.
[email] # smtp服务地址 host = smtp.163.com # 端口 port = 465 # 发件人 user = 163邮箱 # 授权码 pwd = 授权码 # 收件人 to_user = 收件人邮箱 # 邮件正文 content = 正文 # 邮件主题 subject = 主题
send_text:发送文本邮件
以下代码带[]的都是要从配置文件中获取的
class sendemail(object): """封装发送邮件类""" def __init__(self): # 第一步:连接到smtp服务器 self.smtp_s = smtplib.smtp_ssl(host=[host], port=[port]) # 第二步:登陆smtp服务器 self.smtp_s.login(user=[user], password=[pwd]) def send_text(self, to_user, content, subject): """ 发送文本邮件 :param to_user: 对方邮箱 :param content: 邮件正文 :param subject: 邮件主题 :return: """ # 第三步:准备邮件 # 使用email构造邮件 msg = mimetext(content, _subtype='plain', _charset="utf8") # 添加发件人 msg["from"] = [user] # 添加收件人 msg["to"] = to_user # 添加邮件主题 msg["subject"] = subject # 第四步:发送邮件 self.smtp_s.send_message(msg, from_addr=[user], to_addrs=to_user) def send_file(self, to_user, content, subject, reports_path, file_name): """ 发送测试报告邮件 :param to_user: 对方邮箱 :param content: 邮件正文 :param subject: 邮件主题 :param reports_path: 测试报告路径 :param file_name: 发送时测试报告名称 """ # 读取报告文件中的内容 file_content = open(reports_path, "rb").read() # 2.使用email构造邮件 # (1)构造一封多组件的邮件 msg = mimemultipart() # (2)往多组件邮件中加入文本内容 text_msg = mimetext(content, _subtype='plain', _charset="utf8") msg.attach(text_msg) # (3)往多组件邮件中加入文件附件 file_msg = mimeapplication(file_content) file_msg.add_header('content-disposition', 'attachment', filename=file_name) msg.attach(file_msg) # 添加发件人 msg["from"] = [user] # 添加收件人 msg["to"] = to_user # 添加邮件主题 msg["subject"] = subject # 第四步:发送邮件 self.smtp_s.send_message(msg, from_addr=[user], to_addrs=to_user)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
win10如何启用管理员账户 win10禁用/启用管理员账户的方法
win10怎么查看驱动是否异常 Win10检测驱动程序是否正常的方法
Windows10系统任务栏无效图标怎么删除 通过注册表一键快速删除
Win10系统自动重启怎么办 Win10系统自动重启的关闭方法
怎么减少win10笔记本功耗 详谈笔记本硬件功耗大的原因和解决办法
网友评论