栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Python带附件邮件发送的简易实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python带附件邮件发送的简易实现

动手之前需要开启一下SMTP服务,以qq邮箱为例,关于java版的可以查看https://blog.csdn.net/atwdy/article/details/119269369

下面是python代码:

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


class MailHelper:
    __mail_server = None
    __msg = None
    __sender_address = None
    __receiver_address = None

    def __init__(self, server_type):
        self.__mail_server = smtplib.SMTP(server_type)      # 初始化邮箱服务器
        self.__msg = MIMEMultipart()                        # 初始化邮件内容主体对象

    def mail_sender_register(self, sender_address, password):
        self.__sender_address = sender_address
        self.__mail_server.login(sender_address, password)  # 发送人邮箱 授权码

    def msg_sender_name(self, sender_name="默认发件人名称"):
        self.__msg["From"] = sender_name + "<" + self.__sender_address + ">"

    def mail_receiver_address(self, receiver_address):
        self.__receiver_address = receiver_address.split(",")

    def msg_title(self, title):
        self.__msg["Subject"] = title

    def msg_content(self, content):
        self.__msg.attach(MIMEText(content, "plain", "utf-8"))

    def msg_attach(self, file_paths):
        file_paths = file_paths.split(",")
        for file_path in file_paths:
            file_name = file_path.split("\")[-1]
            file = MIMEApplication(open(file_path, 'rb').read())
            file.add_header('Content-Disposition', 'attachment', filename=file_name)    # 设置附件信息
            self.__msg.attach(file)

    def send(self):
        self.__mail_server.sendmail(self.__sender_address, self.__receiver_address, self.__msg.as_string())
        self.__mail_server.quit()


if __name__ == '__main__':
    try:
        mail = MailHelper("smtp.qq.com")                    # 邮箱服务器类型
        mail.mail_sender_register("xxx@qq.com", "16位授权码")  # 发件人邮箱 授权码
        mail.mail_receiver_address("xxx@qq.com")      # 收件人账号,为多个时英文逗号隔开
        mail.msg_sender_name("大大")                        # 发件人姓名
        mail.msg_title("测试邮件标题")                      # 邮件标题
        mail.msg_content("测试邮件内容")                    # 邮件内容
        # 邮件附件,传入附件路径,路径多个时英文逗号隔离
        mail.msg_attach(r"D:tmpHadoop命令操作.java,D:tmpHadoop知识点总结.txt,E:仓库图片证件照.jpg")
        mail.send()
    except Exception as e:
        print(e)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号