Django应用程序中如何发送电子邮件详解

Nora
Nora
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍在Django应用中配置SMTP服务器以发送电子邮件的方法,涵盖settings.py中的关键参数设置。通过django shell演示如何使用send_mail发送单封邮件及send_mass_mail批量发送多封邮件,解析各函数参数含义与返回值,帮助开发者实现密码重置、账户激活等通知功能。

前言

在Django应用程序中,发送电子邮件最常见的应用场景包括密码重置、账户激活以及向用户推送与应用程序相关的一般通知。接下来将详细介绍具体的实现步骤。

配置Django发送电子邮件

为了配置Django应用程序,需要在settings.py文件中添加以下参数:

# 主机
EMAIL_HOST = "smtp.sina.com"
# 端口
EMAIL_PORT = 25
# 发件人邮箱
EMAIL_HOST_USER = "anshengme@sina.com"
# 密码
EMAIL_HOST_PASSWORD = "ansheng.me"
# 是否使用https
EMAIL_USE_TLS = False
# 发件人
EMAIL_FROM = "安生"

发送邮件

首先查看send_mail()方法提供了哪些参数:

参数 描述
subject 邮件标题
message 邮件正文
from_email 发送者
recipient_list 收件人列表
fail_silently 布尔值,
auth_user 用于向SMTP服务器进行身份验证的可选用户名,如果未提供此项,Django将使用EMAIL_HOST_USER设置的值
auth_password 用于向SMTP服务器进行身份验证的可选密码,如果未提供此项,Django将使用EMAIL_HOST_PASSWORD设置的值
connection 用于发送邮件的可选电子邮件后端,如果未指定,将使用默认后端的实例
html_message 如果提供了html_message,则生成的电子邮件将是一个多部分/替代电子邮件,其消息为text/plain内容类型,html_message为text/html内容类型。

接着,进入带有django shell环境变量的Python解释器,尝试发送一封邮件进行测试。

$ python3 manage.py shell
In [1]: from django.core.mail import send_mail
In [2]: send_mail("这是邮件标题", "这是邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
# 返回值将是成功传递的消息的数量(可以是0或1,因为它只能发送一个消息)
Out[2]: 1

随后,打开接收邮件的邮箱,检查是否已成功接收到邮件。

同时发送多封电子邮件

send_mass_mail()所提供的参数值如下:

属性 描述
datatuple 接收一个一个元组,每个元素都是(subject, message, from_email, recipient_list)这种格式

小栗子

In [1]: message1 = ("这是第一封邮件标题", "这是第一封邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
In [2]: message2 = ("这是第二封邮件标题", "这是第二封邮件主体", 'anshengme@sina.com', ['ianshengme@gmail.com'])
In [3]: from django.core.mail import send_mass_mail
In [4]: send_mass_mail((message1,message2),fail_silently=False)
Out[4]: 2

该操作的返回值将是已成功发送邮件的消息数量。

总结

以上就是本文的全部内容,希望这些内容能对大家的Django学习或工作有所帮助。如果有任何疑问,欢迎留言交流,感谢大家对本站的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表