2013-09-21 66 views
3

我正在嘗試GAE,並且在開發和生產過程中從我的應用程序發送電子郵件時遇到了一些麻煩。我知道開發服務器首先需要一點配置,但生產應該是發送電子郵件。沒有任何錯誤可以查看控制檯(我通過終端窗口啓動服務器),並且在生產應用程序中沒有報告。發送電子郵件的Python GAE問題

代碼:

def contactSend(): 
message = mail.EmailMessage() 
message.sender = "[email protected]" 
message.to = "[email protected]" 
message.subject = "Test email from python" 
message.body = "This is the test" 
message.send() 

我迄今檢查: 代碼似乎是正確的。 -Sender(和)地址具有項目的管理員級權限。 - 項目被配置爲Python 2.7(我猜想2.5上的一些問題)。 - 我的垃圾郵件文件夾。

我敢肯定我很可能缺少一些簡單的東西,因爲我對GAE很陌生。任何想法將不勝感激。

編輯:我也試着mail.sendmail:

mail.send_mail(sender="[email protected]", 
      to="[email protected]", 
      subject="This is the test 1124pm", 
      body="TEST!") 

沒有運氣無論是。可能我需要註冊域名或設置Google Apps帳戶?

Edit2 11:52 am:我已經嘗試了一個check_valid_email,以確保它恢復正確。我看到了「send_mail_to_admins」函數,並假定它可能不太受限制並可能工作,但是沒有任何內容。

EDIT3:我不知道是否有幫助,但這裏的請求處理程序:

class contactSend(webapp2.RequestHandler): 
    def post(self): 
     self.response.headers['Content-Type'] = 'text/html' 
     contactSend() 
     self.response.out.write("sent! ") 
+0

你運行開發服務器與--enable_sendmail選項? – rajpy

+0

是的,很好的問題。我也正在GAE上的實時應用程序中運行每個測試,以確保它。 –

+0

我剛剛嘗試使用電子郵件地址「[email protected]」,但沒有任何內容。開發和生活。 –

回答

1

你的代碼片段似乎是正確的(與你的第一個功能的壓痕不當除外),所以我我會提供一些調試信息來幫助你解決你的問題。

  1. 檢查您的應用程序的日誌,看看您的代碼是否有任何異常,這可能會阻止事情按預期工作。
    https://appengine.google.com/logs?&app_id=YOUR_APP_ID
  2. 檢查,看看您的應用程序的配額詳細信息,如果任何郵件已發送。 https://appengine.google.com/dashboard/quotadetails?&app_id=YOUR_APP_ID
  3. 確保sender電子郵件地址已經接受了App Engine的邀請並沒有被列爲權限頁上的「待定」。 https://appengine.google.com/permissions?&app_id=YOUR_APP_ID
  4. 仔細檢查tosender電子郵件地址。複製/粘貼它們並嘗試通過您選擇的電子郵件應用程序直接發送電子郵件給他們。
+1

感謝您的提示!我的日誌只是看起來像這樣:/ contactsend 200 14ms 0kb Mozilla/5.0(X11; Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/28.0.1500.95 Safari/537.36 –

+0

檢查主配額 - 所有內容均爲0所以沒有任何實際觸發。 –

+0

問題*可能是您的'RequestHandler'被命名爲'contactSend',並且您將'contactSend()'作爲其中的函數調用。 你不能將它們命名爲同一件事。 嘗試將函數名稱**或**處理程序名稱更改爲不同的內容。 – erichiggins

0

爲了能夠從某個地址發送電子郵件,您需要先設置一個域,然後授予對應用程序的訪問權限,以便使用它發送電子郵件。

如果你不希望/你需要建立一個域名,如果你的應用程序需要登錄,您可以簡單地使用:

mail.send_mail(sender=users.get_current_user().email(), 
     to="[email protected]", 
     subject="This is the test 1124pm", 
     body="TEST!")