2013-03-13 3 views
1

Mailgun에서 Heroku의 Django 설치로 들어오는 메일을받는보기를 디버깅하려고합니다.Mailgun에서 Heroku의 들어오는 메일에 대한 디버깅

보기 자체는 Mailgun 문서에서 직접 가져옵니다. 수동으로 URL을 호출하면 OK 응답이 표시됩니다. 난 그냥 외부 도구 (나는이 목적을 위해 포스터를 사용하고 있습니다)를 통해 해당 URL에 게시물을 배치하면

@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') 

또한, 나는 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를 통해 오는 외부 전자 메일을 통해 로컬에서 테스트하는 방법을 모르겠습니다)

감사합니다!

+0

장고 설정은 어떻게됩니까? 환경에서 Heroku 바로 Sendgrid 및/또는 Mailgun을 구성하기위한 약간의 도우미를 만들었습니다. https://github.com/fubaz/djheroku/blob/master/djheroku/conf.py#L77 – ferrix

+0

또한 제목에 대해 이야기하고 있습니다. 들어오는 메일과 send_mail은 나에게 나가는 것처럼 보입니다. – ferrix

+0

감사합니다 - send_mail은 사실 모든 것이 괜찮다는 "알림 메시지"일뿐입니다. 아마도 로그 파일로 출력 할 수도 있고, 간단한 메시지를 보내는 것이 더 쉬울 수도 있습니다. 또한 메일을 보내는 것이 시스템의 다른 부분에서도 제대로 작동하므로 환경 문제인지 확인해야합니다 (구성 파일이 광산과 매우 유사합니다). – Jonas

답변

2

나는 마지막으로 문제가 무엇인지 파악 :

가 Mailgun 튜토리얼에서

1) 사용자가 만든 경로가없는 '/'를 마지막에 (예는 다음과 같습니다 http://myhost.com/messages) - 그러나, 발생 APPEND_SLASH 다음 POST 리디렉션에 대한 문제점. 해결책은 단순히 리디렉션 끝에 "/"를 추가하는 것입니다.

2) (나중에 추가로 문제가 발생할 수 있음) - 장고 1.5에서는 allowed_host 값이 허용되는 도메인을 제한한다는 점에 유의하십시오 POST 요청을합니다. 이것은 프로덕션 환경 (debug = false)에서만 사용되지만 나중에 문제가 발생할 수 있으므로 적절하게 설정했는지 확인하십시오 (나는 mailgun.org를 호스트로 허용한다고 생각합니다).

도움을 청한 모든 분들께 감사드립니다.

관련 문제