Django发送邮件

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客

Django 5框架Web应用开发_夏天又到了的博客-CSDN博客

本文学习怎么使用Django发送邮件。

尽管使用Python的smtplib模块发送电子邮件相对容易,但Django还是在其上提供了两个轻巧的包装程序。提供这些包装程序的目的是使电子邮件发送速度更快,使开发过程中的电子邮件发送测试更加容易,并为不能使用SMTP的平台提供支持。

Django框架发送邮件的代码位于django.core.mail模块中,最简单的方法就是通过调用send_mail()方法来实现。

send_mail()方法的语法格式如下:

复制代码
send_mail(

    subject,

    message,

    from_email,

    recipient_list,

    fail_silently=False,

    auth_user=None,

    auth_password=None,

    connection=None,

    html_message=None)

其中的subject、message、from_email和recipient_list参数是必需的。

  • subject参数:字符串。
  • message参数:字符串。
  • from_email参数:字符串。
  • recipient_list参数:邮件地址的字符串列表。
  • fail_silently参数:布尔值。如果参数设为False,则send_mail()方法将会触发一个smtplib.SMTPException异常。
  • 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"内容类型。
  • 返回值:该函数的返回值将是成功传递的消息数(可以为0或1,因为只能发送一条消息)。

请看下面关于发送邮件的代码实例。

【代码11-11】

复制代码
01  from django.core.mail import send_mail

02 

03  send_mail(

04      'Subject here',

05      'Here is the message.',

06      'from@example.com',

07      ['to@example.com'],

08      fail_silently=False,

09  )

使用EMAIL_HOST和EMAIL_PORT设置中指定的SMTP主机和端口发送邮件。EMAIL_HOST_USER和EMAIL_HOST_PASSWORD设置(如果已设置)用于对SMTP服务器进行身份验证,而EMAIL_USE_TLS和EMAIL_USE_SSL设置控制是否使用安全连接。

相关推荐
傻啦嘿哟34 分钟前
用Redis实现爬虫URL去重与队列管理:从原理到实战的极简指南
数据库·redis·爬虫
冒泡的肥皂35 分钟前
2PL+MVCC看一些场景
数据库·后端·mysql
码农阿豪1 小时前
从权限混沌到安全有序:金仓数据库的权限隔离如何超越MySQL
数据库·mysql·安全
不剪发的Tony老师1 小时前
SQL Schema Compare:一款免费开源的数据库结构比较和同步工具
数据库
寒秋丶1 小时前
Milvus:集合(Collections)操作详解(三)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
寒秋丶2 小时前
Milvus:Schema详解(四)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
kyle~2 小时前
CPU调度---协程
java·linux·服务器·数据库·c++20
IDOlaoluo2 小时前
SQL Server 2017 Developer 中文版安装教程(64位 ISO 文件详细步骤)
服务器·数据库·负载均衡
一只游鱼3 小时前
Springboot+BannerBanner(启动横幅)
java·开发语言·数据库
散峰而望3 小时前
Dev-C++一些问题的处理
c语言·开发语言·数据库·c++·编辑器