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

 更新时间:2017年02月04日 09:42:43   作者:安生  
我们常常会用到一些发送邮件的功能,比如有人提交了应聘的表单,可以向HR的邮箱发邮件,这样,HR不看网站就可以知道有人在网站上提交了应聘信息。下面这篇文章就介绍了在Django应用程序中如何发送电子邮件的相关资料,需要的朋友可以参考借鉴。

前言

在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

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Python中的变量、运算符与流程控制

    Python中的变量、运算符与流程控制

    本文详细讲解了Python中的变量、运算符与流程控制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • python中将txt文件转换为csv文件的三种方法举例

    python中将txt文件转换为csv文件的三种方法举例

    对于大数据的处理基本都是以CSV文件为基础进行的,那么在进行深度学习的处理之前,需要先统一数据文件的格式,下面这篇文章主要给大家介绍了关于python中将txt文件转换为csv文件的三种方法,需要的朋友可以参考下
    2024-06-06
  • django 控制页面跳转的例子

    django 控制页面跳转的例子

    今天小编就为大家分享一篇django 控制页面跳转的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Django中log日志记录的最佳实践

    Django中log日志记录的最佳实践

    Django中的log日志记录是一个非常重要的功能,可以帮助开发者快速定位和解决问题。本文将介绍Django中log日志记录的基本概念和使用方法,并提供一些最佳实践,帮助开发者更好地利用log日志记录功能。
    2023-04-04
  • Python之string编码问题

    Python之string编码问题

    这篇文章主要介绍了Python之string编码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python异步执行CMD命令的具体实现

    Python异步执行CMD命令的具体实现

    异步执行CMD命令是提高Python程序性能的有效方法,本文就来介绍一下Python异步执行CMD命令的具体实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 一文详解Python中的时间和日期处理

    一文详解Python中的时间和日期处理

    在Python开发中,我们经常需要处理日期和时间,Python提供了一些内置模块,如datetime、time和calendar,这些模块让我们能够轻松地获取、操作和格式化日期和时间,本文将介绍如何在Python中使用这些模块进行日期和时间的处理
    2023-06-06
  • Python中np.where()用法具体实例

    Python中np.where()用法具体实例

    这篇文章主要给大家介绍了关于Python中np.where()用法的相关资料,np.where()是NumPy库中的一个函数,主要用于根据条件从数组中选择元素,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-08-08
  • Windows上配置Emacs来开发Python及用Python扩展Emacs

    Windows上配置Emacs来开发Python及用Python扩展Emacs

    这篇文章主要介绍了Windows上配置Emacs来开发Python及用Python扩展Emacs的方法,Emacs与Vim并称为开发者手中最强大的两款文本编辑器,需要的朋友可以参考下
    2015-11-11
  • Django自定义全局403、404、500错误页面的示例代码

    Django自定义全局403、404、500错误页面的示例代码

    这篇文章主要介绍了Django自定义全局403、404、500错误页面的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论