python3发送qq邮件_python3发送QQ邮件

本次学习用python发送QQ邮箱

1、导入所需要的包

941d3264a943

2、设置账号

941d3264a943

3、把发送邮件封装成函数

941d3264a943

4、发送纯文本格式的邮件

941d3264a943

5、发送html格式的邮件

941d3264a943

6、发送带附件的邮件

941d3264a943

发送带附件的,如果附件名是中文,注意用上图的格式,否则收到的邮件就会变成这样

941d3264a943

7、发送html带图片的邮件

941d3264a943

我用的是QQ邮箱,设置,然后获取所需授权码

第一步,打开设置——账户

941d3264a943

第二步,往下拉,找到账户安全

941d3264a943

第三步,将第一项开启

941d3264a943

第四步,获取授权码

941d3264a943

附送源代码:

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.com'

user='1366441541@qq.com'

#授权码

pwd='xxx'

receive=['1280147527@qq.com']

'''

单独发送模块

'''

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值