mail -- 邮件模块
mail 模块源代码在文件 applications/common/utils/mail.py 下,主要用于邮件的发送。
使用前,需要正确在 applications/config.py 中配置 SMTP 服务器。
函数
- mail.get_all(receiver=None, subject=None, content=None)
获取邮件列表,支持根据接收者、主题和内容进行筛选。
返回的列表中的字典结构如下:
{ "content": "", # HTML 内容 "create_at": "2022-12-25T10:51:17", # 创建时间 "id": 17, # 邮件ID "realname": "超级管理", # 创建者姓名 "receiver": "", # 接收者 "subject": "" # 邮件主题 }
- 参数:
receiver -- 接收者邮箱地址,支持模糊查询。
subject -- 邮件主题,支持模糊查询。
content -- 邮件内容,支持模糊查询。
- 返回:
返回符合条件的邮件列表。
- mail.add(receiver, subject, content, user_id)
发送一封邮件,并将发送记录保存到数据库。 该方法被邮件发送的视图函数调用。
- 参数:
receiver -- 接收者邮箱地址,多个邮箱用英文分号隔开。
subject -- 邮件主题。
content -- 邮件内容(HTML 格式)。
user_id -- 发送者用户ID,表示谁发送了这封邮件。 可以使用 from flask_login import current_user; current_user.id 获取当前登录用户的ID。
- 返回:
发送成功返回 True,失败报错。
示例
from flask_login import current_user from applications.common.utils import mail mail.add("test@test.com", "subject", "<h1>Hello</h1>", current_user.id)
- mail.delete(id)
删除指定的邮件记录。
- 参数:
id -- 邮件ID。
- 返回:
删除成功返回 True,失败返回 False。
- mail.send_mail(subject, recipients, content)
发送邮件(不记录发送日志)。
注意:如果发送失败会抛出异常,请使用 try-except 进行捕获。
- 参数:
subject -- 邮件主题。
recipients -- 接收者邮箱地址,多个邮箱用英文分号隔开。
content -- 邮件内容(HTML 格式)。