码迷,mamicode.com
首页 > 其他好文 > 详细

SMTP模块发送邮件

时间:2020-02-11 14:32:05      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:email   部分   邮件   chm   smt   pex   multipart   dma   span   

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)  # 打印错误

 

SMTP模块发送邮件

标签:email   部分   邮件   chm   smt   pex   multipart   dma   span   

原文地址:https://www.cnblogs.com/huangjiyong/p/12294824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!