Python Mailgun API无法发送邮件:无报错但未收到邮件
解决Mailgun发件无报错但收件未收到的问题
- 先打印API请求的响应详情,修改代码如下:
import requests def send_simple_message(): response = requests.post( "https://api.mailgun.net/v3/sandbox26ec5a4187a942f6a834bb53d77d2b31.mailgun.org/messages", auth=("api", "API_KEY"), data={"from": "Excited User <mailgun@sandbox26ec5a4187a942f6a834bb53d77d2b31.mailgun.org>", "to": ["MY_EMAIL", "MY_SECOND_EMAIL"], "subject": "Hello", "text": "Testing some Mailgun awesomness!"}) print(response.status_code) print(response.json()) return response send_simple_message()
通过响应状态码和返回的JSON数据,能直接看到Mailgun的处理结果,比如权限问题、收件人未验证等具体原因。
验证收件人邮箱:Mailgun沙箱环境仅允许给已验证的收件邮箱发邮件,登录Mailgun后台,把代码里的
MY_EMAIL和MY_SECOND_EMAIL添加到验证列表,否则邮件会被静默拦截。核对API密钥:确保
auth里的API_KEY是Mailgun控制台的私钥(以key-开头),不要使用公钥。检查垃圾邮件箱:测试邮件大概率会被收件邮箱判定为垃圾邮件,先去垃圾邮件/广告邮件文件夹查找。
确认发件地址:代码里的
from地址必须是沙箱域名对应的邮箱,格式为mailgun@你的沙箱域名,需与代码中填写的地址完全一致。
内容的提问来源于stack exchange,提问作者Hooman
相关产品推荐
相关产品推荐

