我正在尝试调试一个视图,该视图将来自 Mailgun 的传入邮件发送到 Heroku 上的 Django 安装。
视图本身直接取自 Mailgun 文档,如果我手动调用 URL,则会得到 OK 响应。
@csrf_exempt
def askfriend_emailresponse(request):
from_email = "..."
to_email = "..."
if request.method == 'POST':
sender = request.POST.get('sender')
recipient = request.POST.get('recipient')
answer = request.POST.get('stripped-text', '')
try:
send_mail("inside post"+str(recipient[recipient.find("+")+1:recipient.find("@")]), answer, from_email, to_email)
except Exception, e:
raise e
return HttpResponse('OK')
此外,如果我只是通过外部工具向该 URL 发布帖子(我为此目的使用海报),我可以获得 200(我必须为此添加@csrf_exempt
,但现在很好)。
但是,从 Mailgun 日志中我看到转发消息时出现 500 错误,从 Heroku 中我看到有一个传入请求导致 500:
2013-03-13T09:59:04+00:00 heroku[router]: at=info method=POST path=[url] host=[hostname].herokuapp.com fwd="198.61.253.112" dyno=web.1 queue=0 wait=0ms connect=1ms service=86ms status=500 bytes=102194
我花了一天多的时间研究后的问题:
1)任何想法可能是错误的(会很好) - 至少同样重要
2)我怎样才能正确测试这个?因为 Mailguns 日志非常简短(500 - 就是这样!)而且 Heroku 在那里也没有真正的帮助......而且,必须始终首先部署到 Heroku 显然很慢,因此,我想知道这是否真的是“聪明”的开发方式......(我显然在本地测试了所有其他东西,但是通过Mailgun通过POST发送外部电子邮件我不知道如何在本地测试)
谢谢!