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()
复制代码
posted @   时丶一  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示