Open qingfengmingjian opened 5 years ago
例如QQ个人邮箱设置:邮箱首页->设置->账户->POP/SMTP服务->开启服务->生成授权码(做密码使用)
import smtplib #smtp服务器的使用 from email.mime.text import MIMEText #用户实例化邮件内容 from email.mime.multipart import MIMEMultipart #用于实例化可以发送图片、附件的内容 from email.mime.image import MIMEImage #图片处理
mail_host = 'smtp.qq.com'#服务器地址 port = 25 #端口号 sender = '516183151@qqc.om' #邮件发送者账号 password = 'oeyztwunuadwcbai' #登录密码,此处使用授权码 receiver = [ '1293454316@qq.com']#接收者邮箱可以使多人
content = '这是邮件的正文部分,使用的是文本格式,可以使用其他格式' #邮件正文 #构建一个MIMEText实例化,三个参数为邮件正文、格式、编码方式,palin是文本格式 message = MIMEText(content, 'palin', 'utf-8') message['From'] = sender #从哪儿发送 message['To'] = receiver #接收者 message['Subject'] = '这是邮件的标题!'
try: smtpobj = smtplib.SMTP() #实例化一个smtp服务器对象 smtpobj.connect(mail_host, port) #启用服务 smtpobj.log(sender, password)#模拟登录 smtpobj.sendmail(sender, reciver, message.as_string())#发送邮件(发、收、内容) smtpobj.quit() #退出 print('邮件发送成功,请登录邮箱查看!') except smtplib.SMTPException: print('邮件发送失败!')
1.发送html格式的文件,因为邮箱本身的一些标签样式设置,可能看到的显示结果会有差异
content = ''' <p><font size='30' color='red'>Python 邮件发送测试</font></p> <h1>这是H1标签</h1> <p><a href = 'https://www.baidu.com'>这是一个链接</a></p> ''' message = MIMEText(content, 'html', 'utf-8')#设置内容为html格式 message['From'] = sender #从哪儿发送 message['To'] = receiver #接收者 message['Subject'] = '这是邮件的标题!'
2.发送附件
message = MIMEMultipart()#实例message message['From'] = '从健哥哥这里发出' #从哪儿发送 message['To'] = '这里是接收人' #接收者 message['Subject'] = '这是邮件的标题!' message.attach(MIMEText('这是Python 邮件发送测试……', 'plain', 'utf-8'))# 邮件正文内容 # 构造附件,传送当前目录下的 test.txt 文件 att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')#使用open方法,base64格式 att1["Content-Type"] = 'application/octet-stream' # 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="test.txt"' message.attach(att1)
3.正文中发送图片
message = MIMEMultipart()#实例message message['From'] = '从健哥哥这里发出' #从哪儿发送 message['To'] = '这里是接收人' #接收者 message['Subject'] = '这是邮件的标题!' message.attach(MIMEText('这是Python 邮件发送测试……', 'plain', 'utf-8'))# 邮件正文内容 # 构造图片,传送当前目录下的 test.txt 文件 att2 = MIMEImage(open('test1.png', 'rb').read()) att2.add_header('Content-ID','<image1>') message.attach(att2)
Python中使用SMTP发送邮件
1.前置条件:用来发送邮件的邮箱要设置支持POP/SMTP服务
例如QQ个人邮箱设置:邮箱首页->设置->账户->POP/SMTP服务->开启服务->生成授权码(做密码使用)
需要导入的几个包
2.设置SMTP服务器
3.编辑邮件的内容
4.发送邮件
发送html格式的文件、添加附件、发送图片,只需要对邮件内容进行修改
1.发送html格式的文件,因为邮箱本身的一些标签样式设置,可能看到的显示结果会有差异
2.发送附件
3.正文中发送图片
此次内容只讲了邮件的发送,对于实际场景中,定时发送邮件、特定条件促发邮件发送以及其他场景,需要大家根据各自的使用情况添加判定条件