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

作者:安生 时间:2023-11-04 02:07:54 

前言

在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

打开接收邮件的邮箱看看是否已经接收到邮件了?

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

同时发送多封电子邮件

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应用程序中如何发送电子邮件详解

来源:https://blog.ansheng.me/article/send-an-e-mail-message-in-the-django-application/

标签:django,邮件
0
投稿

猜你喜欢

  • IntelliJ IDEA连接MySQL数据库详细图解

    2024-01-13 13:18:38
  • Vue+Express实现登录注销功能的实例代码

    2024-05-13 09:11:38
  • python字典get()方法用法分析

    2023-04-01 23:50:41
  • Python查找不限层级Json数据中某个key或者value的路径方式

    2023-07-08 02:39:43
  • 用python绘制樱花树

    2023-07-24 19:47:09
  • python 动态生成变量名以及动态获取变量的变量名方法

    2021-05-18 10:28:20
  • Python sklearn中的.fit与.predict的用法说明

    2023-01-03 23:54:25
  • Python练习-承压计算

    2022-04-19 15:52:21
  • Django ORM 查询管理器源码解析

    2023-01-30 12:28:47
  • Python中的异常类型及处理方式示例详解

    2022-10-27 14:55:58
  • python property的使用技巧分享

    2022-11-18 21:25:51
  • 基于Python编写一个微博抽奖小程序

    2023-04-02 16:40:00
  • asp如何显示SQL数据库所有表的名称?

    2010-06-08 09:30:00
  • Python使用ClickHouse的实践与踩坑记录

    2023-06-12 21:45:44
  • 解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题

    2023-08-29 17:47:32
  • SQL Server Agent 服务启动后又停止问题

    2024-01-25 21:56:49
  • PHP getallheaders无法获取自定义头(headers)的问题

    2024-04-30 08:47:30
  • CNN卷积函数Conv2D()各参数的含义及用法解读

    2022-03-12 05:35:21
  • mysql中模糊查询的四种用法介绍

    2024-01-23 17:03:02
  • tensorflow指定CPU与GPU运算的方法实现

    2023-08-09 11:18:52
  • asp之家 网络编程 m.aspxhome.com