Django 使用第三方服务发送电子邮件
Posted weixuqin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 使用第三方服务发送电子邮件相关的知识,希望对你有一定的参考价值。
在 Django 网站中使用 mailgun 的邮件收发服务。
1.在 mailgun 官网上注册个账号(免费,免费账号每个月有10000条收发邮件的服务,对我来说已经完全够用了),注册完成后界面如图所示:
然后我们点击 Domain选项,可以看到系统自动为我们生成了一个默认可用域名,点进去查看详细信息。
注意这个域名只是作为测试用,如果需要用来收发电子邮件,你需要添加新域名或者在该测试域名设置下 Authorized Recipients -> Manage Authorized Recipients 添加收发信任邮箱。
2.安装 anymail 模块,该模块支持多个第三方邮件收发服务与 Django 建立连接。
pip install django-anymail
该模块的详细用法,参考:https://github.com/anymail/django-anymail
3.然后我们在 Django 项目中的 setting.py 文件中添加
INSTALLED_APPS = [
# ...
"anymail",
# ...
]
ANYMAIL = {
"MAILGUN_API_KEY": "your Mailgun key",
"MAILGUN_SENDER_DOMAIN": ‘mg.example.com‘, # your Mailgun domain, if needed
}
EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend" # or sendgrid.EmailBackend, or...
DEFAULT_FROM_EMAIL = "[email protected]" # if you don‘t already have this in settings
MAILGUN_API_KEY 和 MAILGUN_SENDER_DOMAID 这两个参数,可以从邮件域名设置中找到:
view.py 文件中添加:
from django.core.mail import send_mail
#只需一个send_mail 函数,便能发送邮件
send_mail("It works!", "This will get sent through Mailgun",
"Anymail Sender <[email protected]>", ["[email protected]"])
(官网的例子哈,跟我项目有差入就不修改了)
4.运行 Django 项目,填入反馈意见,便在我们设置的邮箱中收到发送的邮件。
以上是关于Django 使用第三方服务发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章