2010-04-16 48 views
5

我想從GoogleAppEngine上託管的我的web2py應用發送郵件。但它不起作用。我使用了web2py提供的郵件功能。有人如何做到這一點? 我在GAE文檔中閱讀過python郵件庫不能使用GAE和GAE郵件庫的情況。它也適用於web2py郵件嗎? 感謝從GAE上的web2py發送電子郵件

+1

當你說「不工作」你是什麼意思是什麼呢?它給你一些錯誤信息?這個頁面似乎並不確信電子郵件將與web2py + App Engine一起工作:http://wiki.web2py.com/Sending_Email_with_Plain_Text_HTML_Versions_plus_Attachments – 2010-04-16 21:21:21

+0

電子郵件沒有發送,並且出現以下錯誤 我收到以下錯誤消息。 Mail.send失敗:'模塊'對象沒有屬性'getaddrinfo' – felix 2010-04-17 13:22:22

回答

5

web2py的gluon.tools.Mail類(即所使用的身份驗證模塊太)工作在GAE和非GAE開箱。您只需要通過正確的設置:

mail=Mail() 
mail.settings.server="smtp.example.com:25" or "gae" 
mail.settings.sender="[email protected]" 
mail.settings.tls=True or False 
mail.settings.login="you:password" 

它支持多種編碼,MIME和附件。

+0

我收到以下錯誤消息。 Mail.send失敗:「模塊」對象沒有屬性「的getaddrinfo」 和用於郵件部分的代碼被 郵件=郵件() mail.settings.server =「smtp.gmail.com:587」 郵件.settings.login ='username:passwordxperia x1' mail.settings.sender ='[email protected]' mail.settings.tls = True or False mail.send(to,subject,message) 上面的代碼當我從本地機器使用,但沒有一次我上傳到GAE – felix 2010-04-17 13:21:21

+1

我錯過了我的評論上面的東西,我糾正它。的確,您必須擁有GAE API,並且web2py提供抽象層是對的。但是你不能連接到外部服務器,因爲smtplib要求套接字,套接字在GAE上不可用。底線你必須設置mail.settings.server =「gae」 – mdipierro 2010-04-17 19:30:10

3

web2py gluon.tools.Mail類適用於GAE。 見代碼片段gluon.tools 線310

try: 
     if self.settings.server == 'gae': 
      from google.appengine.api import mail 
      result = mail.send_mail(sender=self.settings.sender, to=to, 
            subject=subject, body=text) 

這是正確的設置,以GAE

mail=Mail() 
mail.settings.server="gae" 
mail.settings.sender="[email protected]" #This must be the email address of a registered 
             #administrator for the application, or the address 
             #of the current signed-in user. 
mail.settings.login="you:password" 

看到工作 http://code.google.com/intl/en/appengine/docs/python/mail/emailmessagefields.html 發件人 發件人的電子郵件地址,發件人地址。這必須是該應用程序的註冊管理員的電子郵件地址或當前登錄用戶的地址。可以使用管理控制檯將管理員添加到應用程序中。當前用戶的電子郵件地址可以通過用戶API確定。

對不起!我的英文很差。我希望能提供幫助。

塞爾索·迪尼奧([email protected]) 巴西世界盃冠軍足球2010