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')
また、外部ツール (私はこの目的で Poster を使用しています) を介してその 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日以上調査に費やした後の私の質問:
1) 何が間違っている可能性があるか (いいことだろう) - 少なくとも同じくらい重要な考え
2) どうすればこれを適切にテストできますか? Mailguns のログは非常に短いため (500 - それだけです!)、Heroku もあまり役に立ちません... また、常に最初に Heroku にデプロイする必要があるのは明らかに非常に遅いため、それが本当に「スマートな」開発方法...(他のすべてのものは明らかにローカルでテストしますが、外部の電子メールがMailgunを介してPOSTを介して送信されるため、ローカルでテストする方法がわかりません)
ありがとう!