Python如何基于smtplib发不同格式的邮件
这篇文章主要介绍了Python如何基于smtplib发不同格式的邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
常用邮箱SMTP、POP3域名及其端口号
发送普通文本内容的邮件
importsmtplib fromemail.headerimportHeader fromemail.mime.textimportMIMEText #smtp服务器信息 smtp_server='smtp.163.com' server_port=465 #发送方信息 sender='发送的邮箱地址' password='发送邮箱的smtp授权码' #收件人地址,列表可发给多人 receivers=['123456@qq.com','3123123@qq.com','12312@qq.com'] #邮箱的正文内容,参数分别为内容,格式(plain为纯文本),编码 msg=MIMEText('Hereiscontent.','plain','utf-8') #邮件头信息 msg['From']=Header(sender)#发件人 msg['To']=Header(','.join(receivers))#发到哪里,参数为字符串 msg['Subject']=Header('Thisissubject')#邮件标题 #发送邮件的操作 try: server=smtplib.SMTP_SSL()#SSL加密传输 server.connect(smtp_server,server_port)#连接smtp,服务器和端口 server.login(sender,password)#登录发信邮箱 server.sendmail(sender,receivers,msg.as_string())#发送邮件 server.quit()#关闭服务器 print('发送成功') exceptsmtplib.SMTPException: print('发送失败')
发送html格式的邮件
Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html
发送带有附件的邮件
发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。
importsmtplib fromemail.headerimportHeader fromemail.mime.applicationimportMIMEApplication fromemail.mime.multipartimportMIMEMultipart fromemail.mime.textimportMIMEText #smtp服务器信息 smtp_server='smtp.163.com' server_port=465 #发送方信息 sender='发送的邮箱地址' password='发送邮箱的smtp授权码' #收件人地址,列表可发给多人 receivers=['969831239@qq.com','124123989@qq.com'] #实例化,先添加正文内容 msg=MIMEMultipart() msg.attach(MIMEText('Thisiscontent.','plain','utf-8')) #添加附件1 att1=MIMEApplication(open('tips.py','rb').read(),'utf-8') att1['Content-Disposition']='attachment;filename="down.py"'#filename随便起,是接收到的附件显示名称 #att1["Content-Type"]='application/octet-stream'Content-Type默认为application/octet-stream msg.attach(att1) #添加附件2 att2=MIMEApplication(open('source.jpg','rb').read(),'utf-8') att2['Content-Disposition']='attachment;filename="girl.jpg"' msg.attach(att2) #邮件头信息 msg['From']=Header(sender)#发件人 msg['To']=Header(','.join(receivers))#发到哪里,参数为字符串 msg['Subject']=Header('Thisissubject')#邮件标题 #发送邮件的操作 try: server=smtplib.SMTP_SSL()#SSL加密传输 server.connect(smtp_server,server_port)#连接smtp,服务器和端口 server.login(sender,password)#登录发信邮箱 server.sendmail(sender,receivers,msg.as_string())#发送邮件 server.quit()#关闭服务器 print('发送成功') exceptsmtplib.SMTPException: print('发送失败')
发送正文带有图片的邮件
使用html格式的img标签指定图片cid显示图片,图片需要用MIMEImage上传并指定imgContent-ID
importsmtplib fromemail.headerimportHeader fromemail.mime.imageimportMIMEImage fromemail.mime.multipartimportMIMEMultipart fromemail.mime.textimportMIMEText #smtp服务器信息 smtp_server='smtp.qq.com' server_port=465 #发送方信息 sender='发送的邮箱地址' password='发送邮箱的smtp授权码' #收件人地址,列表可发给多人 receivers=['dsaisu@163.com','76das23021@qq.com','253das58570@qq.com'] #实例化,添加正文内容,html格式,标签指定cid属性的值等于上传图片中Content-ID的值 msg=MIMEMultipart() msg.attach(MIMEText('','html','utf-8'))#与下面的Content-ID的值相同 #添加图片 img=MIMEImage(open('source.jpg','rb').read()) img.add_header('Content-ID','demo')#与上面的cid相同 msg.attach(img) #邮件头信息 msg['From']=Header(sender)#发件人 msg['To']=Header(','.join(receivers))#发到哪里,参数为字符串 msg['Subject']=Header('Thisissubject')#邮件标题 #发送邮件的操作 try: server=smtplib.SMTP_SSL()#SSL加密传输 server.connect(smtp_server,server_port)#连接smtp,服务器和端口 server.login(sender,password)#登录发信邮箱 server.sendmail(sender,receivers,msg.as_string())#发送邮件 server.quit()#关闭服务器 print('发送成功') exceptsmtplib.SMTPException: print('发送失败')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。