注册mailgun账号
首先登陆https://app.mailgun.com/sessions/new 里注册一个账号,填写邮件和密码点击注册,会出现这样的页面:
然后在注册的邮件会接到两个邮件,一个是API的邮件,另一个是激活账号邮件,如下:
点击激活之后,就要添加可信任邮箱,mailgun只能对这些可信任邮箱发送邮件,其他邮件就会失败,在Account
里选择Authorized Recipients
,然后Invite new Recipients
创建新的守信邮箱,创建完毕之后,邮箱应该是Unverified
的状态,如下:
点击那个Unverified
的状态的邮箱,如果你的机器有装foxmail或者outlook的话,就会自动弹出来,你就可以发送一个邮件到指定的邮箱里,不久邮箱就会收到一个确认信,如下:
点击I agree
即完成授信,邮箱状态也变成了绿色的Verified
。
点击Domains就可以看到账号的api
和domain
了,如图:
至此,邮箱账号申请部分完成。
开始配置
首先安装pip install django-anymail
组件,并且在setting.py
里添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13INSTALLED_APPS = [
...
"anymail",
...
]
ANYMAIL = {
"MAILGUN_API_KEY": "这里填写API",
"MAILGUN_SENDER_DOMAIN": '这里填写domain',
}
EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend"
# DEFAULT_FROM_EMAIL = "you@example.com" # if you don't already have this in settings
# SERVER_EMAIL = "your-server@example.com" # ditto (default from-email for Django errors)
保存退出之后,在views.py
里添加如下信息:
1
2
3
4from django.core.mail import send_mail
#只需一个send_mail 函数,便能发送邮件
send_mail("It works!这里是标题", "This will get sent through Mailgun,这里是内容","domian的内容,即上面图片里那个mailgun.org结尾的东西", ["授信的邮箱地址"])
保存之后,django会自动重启,就会看到邮件顺利发出去了!
可以看出只需要一个send_mail
就能发送邮件,的确比SMTP方便多了。在实际运用中,就把send_mail
放到对应的函数里,然后灵活搭配标题和内容就能使用了!
故障排错
- 如果出现
Please activate your Mailgun account. Check your inbox or log in to your control panel to resend the activation email.
,即账号没激活; - 如果出现
Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.
,即目标邮箱不是授信邮箱,需要添加到授信名单里。