晒晒我家小院子

0%

Django发送邮件

配置setting.py

1
2
3
4
5
6
EMAIL_HOST = 'smtp.sina.cn'                 #SMTP地址
EMAIL_PORT = 25 #SMTP端口
EMAIL_HOST_USER = 'xxxxxxxxxxx@sina.cn' #我自己的邮箱
EMAIL_HOST_PASSWORD = 'xxxxxxxxxxxx' #我的邮箱密码
EMAIL_USE_TLS = False #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false
EMAIL_FROM = 'xxxxxxxxxxx@sina.cn' #发件人

发送一个邮件

1
2
3
4
5
6
7
8
9
10
11
from django.core.mail import 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:一个由邮箱地址组成的字符串列表。recipient_list 中的每一个成员都会在邮件信息的“To:”区域看到其它成员。
fail_silently: 是否报错,True的话表忽略异常。
connection: 表示这个的链接对象。
"""

一次性发送多个邮件

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

例子

1
2
3
4
5
6
from django.core.mail import send_mass_mail

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)

区别在于性能

  • send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。

补充

-------------本文结束感谢您的阅读-------------