Python调用Mailgun接口出现500内部服务器错误求助
问题描述
正在学习Python和VS Code,处于培训阶段。参照Mailgun文档编写了发送邮件的脚本app.py,代码如下:
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": ["bar@example.com", "YOU@YOUR_DOMAIN_NAME"], "subject": "Hello", "text": "Testing some Mailgun awesomness!"})
在VS Code终端通过以下命令运行脚本:
Python app.py
使用Postman测试时,邮件实际发送成功,但Postman返回500内部服务器错误,错误内容如下:
<!doctype html> <html lang=en> <title>500 Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
目前仍在熟悉VS Code的使用,觉得有一定学习难度。
排查建议
- 检查脚本执行逻辑:当前
send_simple_message函数仅定义未调用,直接运行app.py不会执行任何操作。如果这是接口服务的一部分,需确认是否存在未捕获的异常:- 未导入
requests模块就直接使用 - 未替换代码中的占位符(
YOUR_DOMAIN_NAME、YOUR_API_KEY)为实际有效值
- 未导入
- 验证Postman请求配置:确认请求地址、HTTP方法与服务端路由完全匹配,请求参数、头信息格式正确,避免因请求不规范触发服务端内部错误
- 查看服务端运行日志:在VS Code终端运行脚本时,留意是否有报错输出(如模块缺失、权限问题等)。如果使用Flask/Django等框架,开启调试模式可查看详细错误堆栈,定位具体出错点
- 处理Mailgun API响应:即使邮件发送成功,API可能返回非200状态码,若服务端未正确处理该响应会抛出异常导致500错误。可在函数中添加打印语句,输出
requests.post的返回内容,查看具体响应状态和详情:def send_simple_message(): response = requests.post(...) print(response.status_code, response.text) return response
内容的提问来源于stack exchange,提问作者Tikhon
相关产品推荐
相关产品推荐

