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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。