• SMTP模块发送邮件


    import os
    import smtplib
    # 处理多种形态的邮件主体我们需要 MIMEMultipart 类
    from email.mime.multipart import MIMEMultipart
    # 发送字符串的邮件
    from email.mime.text import MIMEText# 不管什么类型的附件,都可以用MIMEApplication
    from email.mime.application import MIMEApplication
    
    
    def email_send(data_f_p_t, page_file_list, content="数据报", content_text=None):
        """
        发送邮件   服务器所需信息   文件路径  邮件内容设置
        :param data_f_p_t:  字典形式
                 fromaddr:  邮件发送方邮箱地址
                 password: 密码(部分邮箱为授权码)
                 toaddrs: 邮件接受方邮箱地址 为列表形式  可以  群发
                 email_site: 发送方的 邮箱服务器地址
        :param page_file_list: 文件路径 列表
        :param content: 邮件标题
        :param content_text: 内容
        :return:
        """
        fromaddr = data_f_p_t['fromaddr']
        password = data_f_p_t['password']
        toaddrs = data_f_p_t['toaddrs']  # 接收方邮件地址
        email_site = data_f_p_t['email_site']
    
        # 构造一个邮件体:正文 附件
        message = MIMEMultipart()
    
        # 邮件内容设置    content 邮件 文本内容
        if content_text:
            textApart = MIMEText(content_text)
            message.attach(textApart)
    
        # 循环添加 附件 路径
        for page_file in page_file_list:
            page_file_txt = os.path.basename(page_file)  # 获取 文件名
            # 邮件 附件 设置
            zipApart = MIMEApplication(open(page_file, 'rb').read())
            # excel 注意:此处basename要转换为gbk编码,否则中文会有乱码
            zipApart.add_header('Content-Disposition', 'attachment',
                                filename=('gbk', '', page_file_txt))
            message.attach(zipApart)  # 放入附件
    
        # message.attach(textApart)  # 放入邮件 内容
        message['From'] = fromaddr  # 发件人
        message['To'] = ','.join(toaddrs)  # 收件人
        message['Subject'] = content  # 设置邮件标题
    
        try:
            # # 163 SMTP_SSL 邮箱服务器地址,端口默认为465
            # server = smtplib.SMTP_SSL(email_site)
            # 163 SMTP_SSL 邮箱服务器地址,端口默认为465
            server = smtplib.SMTP_SSL(email_site)
    
            server.login(fromaddr, password)  # 登陆邮箱
            server.sendmail(fromaddr, toaddrs, message.as_string())   # 发送邮件!
            print('success')
            server.quit()  # 退出
        except smtplib.SMTPException as e:
            print('error:', e)  # 打印错误
  • 相关阅读:
    三层架构补充
    复习三层架构
    复习DOM、JQuery
    复习HTML CSS JavaScript
    Git在新电脑拉github 上的项目
    超全的IE兼容性问题及解决方案
    JS操作iframe
    attachEvent和addEventListener
    HTTP 方法:GET 对比 POST
    原生JS+ CSS3创建loading加载动画;
  • 原文地址:https://www.cnblogs.com/huangjiyong/p/12294824.html
Copyright © 2020-2023  润新知