一、准备数据

  1. 准备需要发送邮件发送端的账号

  2. 开启STMP服务

  3. 开启服务后,保存好授权密码,该密码只会显示一次

  4. 还需获取服务器地址和端口号。在该页面最底下有服务器地址,端口信息可以查看这篇文章邮箱端口列表_126邮箱端口号_冷子夜的博客-CSDN博客

二、发送邮件

这里使用Python演示,30行代码完成邮件发送

  1. 连接服务器,con = smtplib.SMTP_SSL(data['SendAddr'], data['Port'])
  2. 登录邮箱,con.login(data['Username'], data['Password'])
  3. 发送邮件,con.sendmail(data['Username'], data['Receiver'], msg.as_string())
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

data = {
"SendAddr": "Email server address",
"Port": "Email server port",
"Username": "Sender email",
"Password": "Sender email password",
"Subject": "这是一封邮件,请注意查收!",
"Content": "这是邮件内容...",
"Receiver": ['Receiver email 1']
}

# 配置邮件内容
msg = MIMEMultipart()
msg['From'] = data["Username"] # 该邮件的发送端
msg["Subject"] = data['Subject'] # 该邮件的主题
msg.attach(MIMEText(data['Content'], "plain")) # 该邮件的内容
msg['From'] = data["Receiver"] # 该邮件的发送端

# 连接邮箱服务器
con = smtplib.SMTP_SSL(data['SendAddr'], data['Port'])
# 使用发送端邮箱和授权密码,登录邮箱
con.login(data['Username'], data['Password'])
# 发送邮件
con.sendmail(data['Username'], data['Receiver'], msg.as_string())
# 退出连接邮箱服务器
con.quit()

三、添加附件

发送邮件时,可以添加附件,步骤如下:

  1. 打开指定路径的文件,并以二进制形式读取文件内容。
  2. 使用文件名的扩展名来确定附件的类型。
  3. 创建一个MIMEApplication对象,将文件内容作为参数传入,并指定附件的类型。
  4. 添加一个头部信息,指定附件的内容类型为attachment,并将文件名编码为utf-8格式。
  5. 将附件添加到邮件消息中。
def add_file(msg, file_path, file_name):
"""
邮件添加文件
:param msg:
:param file_path: 文件路径
:param file_name: 文件名
:return:
"""
with open(file_path, 'rb') as f:
part = MIMEApplication(f.read(), _subtype=FileUtil.get_file_extension(file_name))
part.add_header('content-disposition', 'attachment', filename=('utf-8', '', "%s" % file_name))
msg.attach(part)