您的位置:首页 > 编程语言 > Python开发

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

2020-06-03 06:05 417 查看

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('2638273921@qq.com', 'gfhfgnbmnnhzdief')

#正文内容 即邮件显示内容
content="这是通过自动化脚本发送的邮件,带附件" #正文内容
msg=MIMEMultipart()
msg.attach(MIMEText(content,'plain','utf-8'))#(content,'plain'(格式 Html 等),'utf-8')
msg['From']='2638273921@qq.com'
msg['To']='2638273921@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='2638273921@qq.com'
receiver='2638273921@qq.com'#多个的话写为列表形式
#receivers=['2638273921@qq.com','3110209176@qq.com']
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

print('发送成功')

实现效果

具体实现讲解

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('2638273921@qq.com', 'onhhdodmnnhzdief')
#邮件名及第三方登录授权码
  • 上述代码以QQ邮箱为例,其余邮箱服务器地址和端口号可直接搜索’常用邮箱SMTP服务器地址大全’关键词即可查找
  • 下面以QQ邮箱为例,介绍如何获取邮箱的第三方登录授权码
    1). 登录邮箱,点击邮箱设置(设置)->账户

    2). 下拉找到 POP3/SMTP服务 ,若未开启可点击开启依照简单步骤进行开启(注意保存授权码);若已开启但忘记授权码,可以点击关闭后再次进行开启,重新获得授权码

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

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

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

对应邮件的内容如下

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='2638273921@qq.com'
#收件人邮箱,多个的话写为列表形式
receiver='2638273921@qq.com'
#receivers=['2638273921@qq.com','3110509175@qq.com']
#组装邮件
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()
print('发送成功')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: