由于工作需要,搭建了一个网站,现在需要为网站添加邮件服务,网站的开源框架使用的是免费的 Mailgun 邮件服务,于是学习了一下。
准备工作
Namecheap 域名(yourdomain.com)
VPS 主机(IP:xx.xx.xx.xx)
Mailgun 账户(官网申请)
本文的前提环境是:读者已经搭建好了网站,并能正常访问
添加 Mailgun 域名
首先在 Mailgun 官网上添加一个新的域名(mail.yourdomain.com),根据提示一步步添加完成。然后打开刚刚添加的域名,根据Domain Verification & DNS的信息提示将对应的 DNS 纪录添加到 Namecheap 中。(红色部分即为主域名:yourdomain.com)
添加 Namecheap DNS 纪录
在 Namecheap 官网上打开自己的域名管理页面,选择相应的域名(yourdomain.com),然后在Advanced DNS面板里添加 Mailgun 显示的纪录。
Mailgun 验证
最后,在 Mailgun 上验证自己的 DNS 纪录。在Domain Verification & DNS下点击Check DNS Records Now,如果配置正确,就可以看到TXT records,CNAME record 和 MX records都显示绿色。此时,在 Domain Information 下的 State 变为绿色的 Active。
邮件测试
邮件发送
下面是 Python 下测试邮件发送代码:
# encoding = utf-8
from pip._vendor import requests
def send_simple_message():
return requests.post(
"https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages",
auth=("api", "YOUR_API_KEY"),
data={"from": "Excited User <mailgun@YOUR_DOMAIN_NAME>",
"to": ["[email protected]", "YOU@YOUR_DOMAIN_NAME"],
"subject": "Hello",
"text": "Testing some Mailgun awesomness!"})
if __name__ == "__main__":
print "Hello"
print send_simple_message()
print "End"
测试结果,查看打印:
Hello
<Response [200]>
End
如果 Response 返回码为 200 说明发送成功,即可在收件箱里查看。
邮件接收
Mailgun 对于收到的邮件可以设置转发,在 Routes 选项卡下面可以添加自定义规则。
Mailgun 常见 HTTP 响应码
Code | Description |
---|---|
200 | Everything worked as expecte |
400 | Bad Request - Often missing a required parameter |
401 | Unauthorized - No valid API key provided |
402 | Request Failed - Parameters were valid but request failed |
404 | Not Found - The requested item doesn’t exist |
500, 502, 503, 504 | Server Errors - something is wrong on Mailgun’s end |