2011-04-01 6 views
0

Google App Engine 내에서 이메일을 보내려고합니다.GAE에서 메일을 보내는 데 어려움이 있습니다.

보내려고 할 때마다 "누락 된 주제 오류"가 나타납니다.

개발 서버에서 코드를 실행하면 제대로 작동하는 것 같습니다. 콘솔 출력이 올바르게 보이고 내가 예상 한 페이지로 이동합니다. 그러나 업로드하고 실행하면 다음과 같이 표시됩니다.

Traceback (most recent call last): 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 636, in __call__ 
    handler.post(*groups) 
    File "/base/data/home/apps/spam-tool/1.349401522260793315/spam-tool.py", line 34, in post 
    body=cgi.escape(self.request.get('content'))) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 297, in send_mail 
    message.send(make_sync_call) 
    File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 799, in send 
    raise ERROR_MAP[e.application_error](e.error_detail) 
BadRequestError: Missing subject 

분명히 주제가 있습니다.

내가 사용하는 코드는 다음과 같습니다

> message = mail.EmailMessage(sender="[email protected]>", 
      subject="test") 
     message.subject=self.request.get('content') 
     message.to = addr_to_send_to 
     message.body = self.request.get('content') 
     message.send() 

(예, 피사체가 두 번 ... 난 단지하려 한 장소 또는 기타에 설정하고, 어느 쪽도 일하지 한 설정되어 있습니다.)

미리 감사드립니다.

답변

0

는 당신을 던지고 어떤 경우 나도 몰라 ...하지만 보낸 사람이 같이해야한다 : 당신이 보낸 사람의 '<'를 누락

sender = '<[email protected]>', 

. 때로는 실제 오류가 발생한 지점에서 오류가 발생합니다.

또한 [email protected]이 해당 앱의 개발자로 추가 된 Google 계정인지 확인하십시오.

+0

좋은 제안 이었지만, 내가 이미 가지고 있었던 것이 었습니다 - 여기에 게시하기 전에 코드 조각을 변경했다는 것을 분명히해야했습니다. – user686830

1

이 시도 : 당신이 해킹 될 가능성이 낮 있도록이 같은 설정 뭔가, 고유 한 매개 변수를 통해 전달할 수 수 있도록

def email_member(request): 
    to_addr = request.POST.get('email_to') 

    if not mail.is_email_valid(to_addr): 
    # Return an error message... 
    pass 
    else: 
    # note we can also send html email, e.g. html='<html><head></head><body>Hello world</body><html>' 
    mail.send_mail(
     sender='[email protected]', 
     to=to_addr, 
     subject=request.POST.get('email_title'), 
     body=request.POST.get('email_body')) 

내가, 당신은 또한 작업 대기열 내에서 이메일을 보내 좋습니다. 당신은 단지 관리자에게 보내려면

def mail_member_information(email_to, email_title, email_body): 
    taskqueue.add(
    url = 'email_message', 
    params = 
    { 
     'email_to': email_to, 
     'email_title': email_title, 
     'email_body': email_body, 
     'valid_guid': 'ae9e34ca-a2c5-476e-b8be-72d807e3dc6b' 
    } 
) 

다음이를 사용

mail.send_mail_to_admins(sender='[email protected]', subject=request.POST.get('email_title'), body=request.POST.get('email_body'), html=request.POST.get('email_body'))

0

를 내가 보낸이 응용 프로그램의 관리자인지 확인,이 같은 보낼 수 있다고 생각

from google.appengine.api import mail 
mail.send_mail(sender="[email protected]", 

       to=email_valid.email, 
       subject="Please validate your email", 
       body=body_text, 
       html=htmlbody_text) 
+0

당신은 할 수 있습니다. 나는 그런 식으로 시도해 보았지만 작동하지 않았습니다. 따라서 고정 된 경우에 게시 한 객체 지향 방식을 시도했습니다. 그렇지 않았습니다. – user686830

+0

@svaha 위 코드를 시도했을 때 오류가 정확히 무엇인지 말해 줄 수 있습니까? –

관련 문제