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

编程入门 行业动态 更新时间:2024-10-27 04:32:38

Python带附件邮件发送的<a href=https://www.elefans.com/category/jswz/34/1769136.html style=简易实现"/>

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

动手之前需要开启一下SMTP服务,以qq邮箱为例,关于java版的可以查看

下面是python代码:

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMETextclass MailHelper:__mail_server = None__msg = None__sender_address = None__receiver_address = Nonedef __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_addressself.__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"] = titledef 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")                    # 邮箱服务器类型mail.mail_sender_register("xxx@qq", "16位授权码")  # 发件人邮箱 授权码mail.mail_receiver_address("xxx@qq")      # 收件人账号,为多个时英文逗号隔开mail.msg_sender_name("大大")                        # 发件人姓名mail.msg_title("测试邮件标题")                      # 邮件标题mail.msg_content("测试邮件内容")                    # 邮件内容# 邮件附件,传入附件路径,路径多个时英文逗号隔离mail.msg_attach(r"D:\tmp\Hadoop命令操作.java,D:\tmp\Hadoop知识点总结.txt,E:\仓库\图片\证件照.jpg")mail.send()except Exception as e:print(e)

上面是将代码进行了一个简单封装之后的结果,下面这种结构化的代码和上面等价,更容易快速理解:

import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMETextsend_from = "xxx@qq"
password = "16位授权码"
send_to = "xxx@qq"mail_server = smtplib.SMTP("smtp.qq")      # 创建邮箱服务器
mail_server.login(send_from, password)
msg = MIMEMultipart()                          # 创建邮件体
msg["From"] = "发送人名称" + "<" + send_from + ">"
msg["Subject"] = "邮件标题"
msg.attach(MIMEText(r"邮件内容", "plain", "utf-8"))
attach_file = MIMEApplication(open("附件路径", 'rb').read())    # 创建附件
attach_file.add_header('Content-Disposition', 'attachment', filename="附件名")
msg.attach(attach_file)
mail_server.sendmail(send_from, send_to, msg.as_string())
mail_server.quit()

授权码在某些邮箱中可以替换成邮箱密码,这取决于邮箱类型。

更多推荐

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

本文发布于:2024-02-07 09:10:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755438.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简易   邮件发送   附件   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!