动手之前需要开启一下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)



