lsekfe 发表于 2022-7-8 10:12:15

Python实现报表自动化和自动发送到目的邮箱(2)

第三步:自动发送邮件
  做出来的一系列报表一般都要发给别人看的,对于一些每天需要发送到指定邮箱或者需要发送多封报表的可以使用Python来自动发送邮箱。
  在Python发送邮件主要借助到smtplib和email这个两个模块。
  ·smtplib:主要用来建立和断开与服务器连接的工作。
  · email:主要用来设置一些些与邮件本身相关的内容。
  不同种类的邮箱服务器连接地址不一样,大家根据自己平常使用的邮箱设置相应的服务器进行连接。这里博主用网易邮箱展示:
  首先需要开启POP3/SMTP/IMAP服务:

之后便可以根据授权码使用python登入了。
import smtplib
  from email import encoders
  from email.header import Header
  from email.utils import parseaddr,formataddr
  from email.mime.application import MIMEApplication
  from email.mime.multipart import MIMEMultipart
  from email.mime.text import MIMEText
  #发件人邮箱
  asender="fanstuck@163.com"
  #收件人邮箱
  areceiver="1079944650@qq.com"
  #抄送人邮箱
  acc="fanstuck@163.com"
  #邮箱主题
  asubject="谢谢关注"
  #发件人地址
  from_addr="fanstuck@163.com"
  #邮箱授权码
  password="####"
  #邮件设置
  msg=MIMEMultipart()
  msg['Subject']=asubject
  msg['to']=areceiver
  msg['Cc']=acc
  msg['from']="fanstuck"
  #邮件正文
  body="你好,欢迎关注fanstuck,您的关注就是我继续创作的动力!"
  msg.attach(MIMEText(body,'plain','utf-8'))
  #添加附件
  htmlFile = 'C:/Users/10799/problem.html'
  html = MIMEApplication(open(htmlFile , 'rb').read())
  html.add_header('Content-Disposition', 'attachment', filename='html')
  msg.attach(html)
  #设置邮箱服务器地址和接口
  smtp_server="smtp.163.com"
  server = smtplib.SMTP(smtp_server,25)
  server.set_debuglevel(1)
  #登录邮箱
  server.login(from_addr,password)
  #发生邮箱
  server.sendmail(from_addr,areceiver.split(',')+acc.split(','),msg.as_string())
  #断开服务器连接
  server.quit()运行测试:

下载文件:

完全没问题!!!

页: [1]
查看完整版本: Python实现报表自动化和自动发送到目的邮箱(2)