欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python实现邮件自动发送--代码

程序员文章站 2022-07-08 10:06:01
...

python实现邮件自动发送–代码

完整代码

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

#配置环境 连接服务器
server='smtp.qq.com' #smtp.qq.com smtp.126.com ......
smtp=smtplib.SMTP_SSL(server, 465)

#用户登录,此处授权瞎打的
smtp.login('aaa@qq.com', 'gfhfgnbmnnhzdief')

#正文内容 即邮件显示内容
content="这是通过自动化脚本发送的邮件,带附件" #正文内容
msg=MIMEMultipart()
msg.attach(MIMEText(content,'plain','utf-8'))#(content,'plain'(格式 Html 等),'utf-8')
msg['From']='aaa@qq.com'
msg['To']='aaa@qq.com'
#msg['To']=','.join(receivers)#发送给多人时  ','.join(receivers)  receivers为收件人列表
msg['Subject']=Header('自动发送','utf-8')#主题

#附件内容
send_file=open(r'D:\desktop\1.jpg', 'rb').read()#附件读取
att=MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="1.jpg"'
msg.attach(att)#把附件添加到邮件中

#发送
sender='aaa@qq.com'
receiver='aaa@qq.com'#多个的话写为列表形式
#receivers=['aaa@qq.com','aaa@qq.com']
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

print('发送成功')

实现效果

python实现邮件自动发送--代码

具体实现讲解

1. 用到的库

import smtplib #连接服务器
from email.mime.text import MIMEText #发送附件
from email.header import Header #发送主题
from email.mime.multipart import MIMEMultipart#发送正文

2. 配置环境,连接服务器

#配置环境 连接服务器
server='smtp.qq.com' #服务器地址 smtp.qq.com smtp.126.com ......
smtp=smtplib.SMTP_SSL(server, 465) #对应端口号

#用户登录
smtp.login('aaa@qq.com', 'onhhdodmnnhzdief')
#邮件名及第三方登录授权码
  • 上述代码以QQ邮箱为例,其余邮箱服务器地址和端口号可直接搜索’常用邮箱SMTP服务器地址大全’关键词即可查找
  • 下面以QQ邮箱为例,介绍如何获取邮箱的第三方登录授权码
    1). 登录邮箱,点击邮箱设置(设置)->账户
    python实现邮件自动发送--代码
    2). 下拉找到 POP3/SMTP服务 ,若未开启可点击开启依照简单步骤进行开启(注意保存授权码);若已开启但忘记授权码,可以点击关闭后再次进行开启,重新获得授权码
    python实现邮件自动发送--代码

3.填写收发邮箱及主题、正文内容



#正文内容
content="这是通过自动化脚本发送的邮件,带附件" 
msg=MIMEMultipart()
msg.attach(MIMEText(content,'plain','utf-8'))#(content,'plain'(格式 Html 等),'utf-8')
#邮件的标注内容
msg['From']='aaa@qq.com'
msg['To']='aaa@qq.com'
#msg['To']=','.join(receivers)#发送给多人时  ','.join(receivers)  receivers为收件人列表

#主题
msg['Subject']=Header('自动发送','utf-8')

对应邮件的内容如下
python实现邮件自动发送--代码
4.添加附件

#附件内容
send_file=open(r'D:\desktop\1.jpg', 'rb').read()#附件读取
att=MIMEText(send_file, 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment;filename="1.jpg"'
#注意filename="1.jpg"  需要扩展名与附件类型一致,否则文件无法显示
msg.attach(att)#把附件添加到邮件中

5. 发送邮件

#发送
#发件人邮箱
sender='aaa@qq.com'
#收件人邮箱,多个的话写为列表形式
receiver='aaa@qq.com'
#receivers=['aaa@qq.com','aaa@qq.com']
#组装邮件
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()
print('发送成功')
相关标签: python