邮件"/>
python3发送qq邮件
本次学习用python发送QQ邮箱
1、导入所需要的包
2、设置账号
3、把发送邮件封装成函数
4、发送纯文本格式的邮件
5、发送html格式的邮件
6、发送带附件的邮件
发送带附件的,如果附件名是中文,注意用上图的格式,否则收到的邮件就会变成这样
7、发送html带图片的邮件
我用的是QQ邮箱,设置,然后获取所需授权码
第一步,打开设置——账户
第二步,往下拉,找到账户安全
第三步,将第一项开启
第四步,获取授权码
附送源代码:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
host='smtp.qq'
user='1366441541@qq'
#授权码
pwd='xxx'
receive=['1280147527@qq']
'''
单独发送模块
'''
def send(msg):
try:
smtp = smtplib.SMTP()
smtp.connect(host, 25)
smtp.login(user, pwd)
smtp.sendmail(user, receive, msg.as_string())
smtp.quit()
print("邮件发送成功!")
except smtplib.SMTPException as e:
print("失败", e)
'''
发送文本格式邮件
'''
def sendtext():
# 第一个是文本内容;第二个是文本参数,plain表示纯文本格式;第三个编码格式
content = "这是一首简单的小情歌" \
"愿你聆听、幸福"
msg = MIMEText(content, 'plain', 'utf-8')
#from表示发件人显示内容
msg['from'] = Header("from妞妞", 'utf-8')
#to表示收件人显示内容
msg['to'] = Header('to大宝', 'utf-8')
# subject,邮件标头
subject = 'python 邮件测试'
msg['subject'] = Header(subject, 'utf-8')
send(msg)
'''
发送HTML格式邮件
'''
def sendhtml():
content="""
学习python,菜鸟教程,你值得拥有!
这是一个链接
"""
msg=MIMEText(content,'html','utf-8')
msg['from']=Header("倩倩",'utf-8')
msg['to']=Header('测试老师','utf-8')
subject="这是html格式邮件测试"
msg['subject']=Header(subject,'utf-8')
send(msg)
'''
发送带附件的邮件
'''
def sendattach():
msg = MIMEMultipart()
msg['from']=Header('倩倩附件','utf-8')
msg['to']=Header('大宝附件','utf-8')
subject="python附件测试"
msg['subject']=Header(subject,'utf-8')
#正文内容
content="附件测试的正文内容"
msg.attach(MIMEText(content,'plain','utf-8'))
#构造附件1
att1=MIMEText(open('send.txt','rb').read(),'base64','utf-8')
att1['Content-Type']='application/octet-stream'
#filename写什么显示什么,为防止中午附件乱码,采用这种格式
att1.add_header('Content-Disposition', 'attachment', filename=('gbk', '', "倩倩.txt") )
#这样写,邮件能发送成功,但接受的附件名就是乱码
#att1['Content-Disposition']='attachment;filename=倩倩.txt.
#添加附件
msg.attach(att1)
#构造附件2
att2=MIMEText(open('send1.txt','rb').read(),'base64','utf-8')
att2['Content-Type']='application/octet-stream'
#att2['Content-Disposition']='attachment;filename=%s'%('大宝.txt').encode('utf-8')
att2.add_header('Content-Disposition','attachment',filename=('utf-8','','大宝.txt'))
msg.attach(att2)
send(msg)
'''
在html文本中添加图片
'''
def sendimage():
msgroot=MIMEMultipart('related')
msgroot['from']=Header('倩倩图片','utf-8')
msgroot['to']=Header('大宝图片','utf-8')
subject="python测试图片发送"
msgroot['subject']=Header(subject,'utf-8')
msgAlternative=MIMEMultipart('alternative')
msgroot.attach(msgAlternative)
content="""
学习python,菜鸟教程,你值得拥有!
这是一个链接
图片演示
"""
msgAlternative.attach(MIMEText(content,'html','utf-8'))
#指定图片目录
fp=open("WechatIMG13181.png",'rb')
msgimg=MIMEImage(fp.read())
#定义图片id,在html中引用
msgimg.add_header("Content-ID","image1")
msgroot.attach(msgimg)
send(msgroot)
sendimage()
更多推荐
python3发送qq邮件
发布评论