Django发送邮件

Django发送邮件

基本使用

from django.core.mail import send_mail

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

邮件是通过 SMTP 主机和端口发送的

由配置项 EMAIL_HOSTEMAIL_PORT指定。

如果配置了 EMAIL_HOST_USEREMAIL_HOST_PASSWORD

那么它们将被用来验证 SMTP 服务器。

配置项 EMAIL_USE_TLSEMAIL_USE_SSL控制是否使用安全连接

通过 django.core.mail 发送的邮件的字符编码由 DEFAULT_CHARSET设置项指定

发送邮件函数

send_mail()

  • send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)

在大多数情况里,你可以使用 django.core.mail.send_mail() 来发送邮件。

参数 subject, message, from_emailrecipient_list 是必须的。

  • subject: 一个字符串。
  • message: 一个字符串。
  • from_email :字符串。如果为 None ,Django 将使用 DEFAULT_FROM_EMAIL设置的值。
  • recipient_list: 一个字符串列表,每项都是一个邮箱地址。recipient_list 中的每个成员都可以在邮件的 “收件人:” 中看到其他的收件人。
  • fail_silently: 一个布尔值。若为 Falsesend_mail() 会在发生错误时抛出 smtplib.SMTPException。可在 smtplib文档找到一系列可能的异常,它们都是 SMTPException的子类。
  • auth_user: 可选的用户名,用于验证登陆 SMTP 服务器。 若未提供,Django 会使用 EMAIL_HOST_USER指定的值。
  • auth_password: 可选的密码,用于验证登陆 SMTP 服务器。若未提供, Django 会使用 EMAIL_HOST_PASSWORD指定的值。
  • connection: 可选参数,发送邮件使用的后端。若未指定,则使用默认的后端。查询 邮件后端文档获取更多细节。
  • html_message: 若提供了 html_message,会使邮件成为 multipart/alternative 的实例, message 的内容类型则是 text/plain ,并且 html_message 的内容类型是 text/html

返回值会是成功发送的信息的数量(只能是 01 ,因为同时只能发送一条消息)。

send_mass_mail()

  • send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password=None, connection=None)

django.core.mail.send_mass_mail() 用于批量发送邮件。

datatuple 是一个元组,形式如下:

(subject, message, from_email, recipient_list)

fail_silentlyauth_userauth_password 拥有在 send_mail()中一样的功能。

datatuple 参数的每个元素会生成一份独立的邮件内容。就像 send_mail()中的一样, recipient_list 中的每个收件人会在邮件的 “收件人:” 中看到其他收件人的地址一样。

举个例子,以下代码会向两个不同的收件人列表发送两封不同的邮件,却复用了同一条连接:

message1 = ('Subject here', 'Here is the message', 'from@example.com', ['first@example.com', 'other@example.com'])
message2 = ('Another Subject', 'Here is another message', 'from@example.com', ['second@test.com'])
send_mass_mail((message1, message2), fail_silently=False)

返回值是成功发送的消息的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值