python 发送邮件
- 背景
工作中经常遇见定时邮件的一些需求,以及把使用python处理的数据通过邮件发送。
- 核心代码
import datetime from IPython.display import HTML from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication def send_email(): # email相关 user = Config.email_sender # 发件人 pwd = Config.email_sender_pwd # 邮箱用的授权码 arerceiver = Config.email_arerceiver # 收件人邮箱 acc = Config.email_cc # 抄送人邮件 host = Config.email_host rtn_html = Config.rtn_html email_out_dir = Config.email_out_dir file_name = email_out_dir + '.xlsx' # MIMEMultipart是多个部分 msg = MIMEMultipart () msg["Subject"] = u'test' msg["From"] = user msg["To"] = arerceiver msg["Cc"] = acc # excel附件部分 rtn_excel_part = MIMEApplication (open (file_name, 'rb').read ()) rtn_excel_part["Content_type"] = 'application/octet-stream' rtn_basename = os.path.basename (file_name) rtn_excel_part.add_header ('Content-Disposition', 'attachment', filename='%s' % rtn_basename, encoding='utf_8_sig') msg.attach (rtn_excel_part) # html附件部分 rtn_part = MIMEText (rtn_html, 'html', 'utf-8') msg.attach (rtn_part) # 邮件部分 s = smtplib.SMTP_SSL (host, 465) # 连接qq邮箱服务器,默认端口465 s.login (user, pwd) # 登陆服务器 s.sendmail (user, arerceiver.split (',') + acc.split (','), msg.as_string ()) # 发送邮件 print ("邮件发送成功", datetime.datetime.now ()) s.close () return if __name__ == '__main__': send_email()

浙公网安备 33010602011771号