原文链接:http://www.cloudcrossing.xyz/post/26/
最近在给我的 博客-苍云横渡 添加发送邮件重置密码的功能,写下这篇教程以免自己再走弯路。
在本教程中,我使用了 Mailgun 服务配置博客进行邮件的发送。
注册Mailgun并添加新域名
点击 www.mailgun.com 进行注册,点掉箭头指向的勾勾,免费用户每个月发送的前10,000封电子邮件免费,这对于小型博客来说足够了。
![](https://img.haomeiwen.com/i9578471/91caa3971494ecde.png)
接着点击域名,然后添加新域名
![](https://img.haomeiwen.com/i9578471/fac4f41cf0c5330e.png)
按照 mg.mydomain.com
的格式进行新域名的添加(记住下面所有的 cloudcrossing.cn
都换车你自己的域名)
![](https://img.haomeiwen.com/i9578471/ba593d7163a220f7.png)
接着点击添加新域名。
添加发送DNS解析记录
点击添加新域名之后,会看到
![](https://img.haomeiwen.com/i9578471/181b5a959f7d6a1b.png)
接下来访问域名的DNS提供商,即腾讯云、阿里云等等。 进入以下界面,点击添加记录。
![](https://img.haomeiwen.com/i9578471/988cbe593ef1dff0.png)
将TXT records(主机名或域名设置的说明)添加进去
![](https://img.haomeiwen.com/i9578471/b8419d2095655a18.png)
将MX records(邮件交换记录,用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理)添加进去
![](https://img.haomeiwen.com/i9578471/e1274c81b84489e2.png)
添加追踪DNS解析记录
以类似的方式,将CNAME record(用于跟踪打开,点击等)添加进去
![](https://img.haomeiwen.com/i9578471/5691c4b0a43ff4af.png)
![](https://img.haomeiwen.com/i9578471/3d9692181882a09e.png)
最终添加了五条记录。
等待域名验证
![](https://img.haomeiwen.com/i9578471/b534308e7e891bde.png)
点击 Continue To Domain Overview
,等待生效。你将会看到如下界面。
![](https://img.haomeiwen.com/i9578471/0445111bf8601229.png)
官方说24h-48h,但是一般五分钟就生效了。
![](https://img.haomeiwen.com/i9578471/960a68dfa624fd50.png)
记住你的帐号、密码(可以修改)
配置settings.py
#settings.py
EMAIL_BACKEND = django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST = smtp.mailgun.org
EMAIL_PORT = 587
EMAIL_HOST_USER = postmaster@mg.cloudcrossing.cn
EMAIL_HOST_PASSWORD = xxxxxx
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
最后可以自行进行简单的测试。
Django自带邮件功能
Django自带了一个处理发送邮件的模块叫 smtplib
,该模块在django.core.mail
里边。
send_mail()
使用以下参数:
- subject :一个字符串;
- message :一个字符串;
- from_email :一个字符串;
- recipient_list :字符串列表;
- fail_silently :一个布尔值;
- auth_user :用于向SMTP服务器进行身份验证的可选用户名;
- auth_password :用于验证SMTP服务器的可选密码;
- connection :用于发送邮件的可选电子邮件后端;
- html_message :包含HTML格式消息的可选字符串。
返回值将成功传递消息的数量(可以是0或1,因为它只能发送一条消息)。
send_mass_mail()
:处理大量电子邮件的功能,使用以下参数:
-
datatuple :一个元组
(subject, message, from_email, recipient_list)
; - fail_silently :一个布尔值;
- auth_user :用于向SMTP服务器进行身份验证的可选用户名;
- auth_password :用于验证SMTP服务器的可选密码;
- connection :用于发送邮件的可选电子邮件后端;
举个例子:
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)
返回值将是成功传递消息的数量。
网友评论