GAE

2010-04-16 14 views
5

पर किसी वेब 2py से ईमेल भेजना मैं GoogleAppEngine पर होस्ट किए गए मेरे web2py ऐप से एक मेल भेजने की कोशिश कर रहा हूं। लेकिन यह काम नहीं कर रहा है। मैंने मेल फ़ंक्शन का उपयोग किया जो वेब 2py के साथ दिया गया था। क्या कोई ऐसा कैसे करता है? मैंने जीएई दस्तावेज़ीकरण में पढ़ा है कि पाइथन मेल लाइब्रेरी जीएई और जीएई मेल लाइब्रेरी के साथ काम नहीं करेगी। क्या यह web2py मेल पर भी लागू होता है? धन्यवादGAE

+1

जब आप कहते हैं कि "काम नहीं कर रहा" क्या आप वास्तव में क्या मतलब है? क्या यह आपको कुछ त्रुटि संदेश दे रहा है? यह पृष्ठ विश्वास नहीं करता है कि ईमेल web2py + App Engine के साथ काम करेगा: http://wiki.web2py.com/Sending_Email_with_Plain_Text_HTML_Versions_plus_Attachments –

+0

ईमेल नहीं भेजा जा रहा है, और मुझे निम्न त्रुटि मिल रही है मुझे निम्न त्रुटि मिल रही है। Mail.send विफलता: 'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है 'getaddrinfo' – felix

उत्तर

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" 

यह अधिक एन्कोडिंग, माइम और संलग्नक का समर्थन करता है।

+0

मुझे निम्न त्रुटि मिल रही है। Mail.send विफलता: 'मॉड्यूल' ऑब्जेक्ट मेल = मेल() mail.settings.server = 'smtp.gmail.com:587' मेल है कोई विशेषता 'getaddrinfo' और मेल भाग के लिए कोड है .settings.login = 'उपयोगकर्ता नाम: passwordxperia x1' mail.settings.sender = '[email protected]' mail.settings.tls = सही या गलत mail.send (से, विषय, संदेश) कोड से ऊपर जब मैं अपनी स्थानीय मशीन से उपयोग करता हूं तो काम करता है लेकिन एक बार जब मैं GAE – felix

+1

पर अपलोड नहीं करता हूं तो मैंने उपरोक्त मेरी टिप्पणी में कुछ याद किया और मैंने इसे सही किया। यह सच है कि आपको GAE API होना चाहिए और यह सच है कि web2py एक अमूर्त परत प्रदान करता है।लेकिन आप किसी बाहरी सर्वर से कनेक्ट नहीं हो सकते हैं क्योंकि smtplib को सॉकेट और सॉकेट की आवश्यकता है GAE पर उपलब्ध नहीं है। नीचे की रेखा आपको mail.settings.server = "gae" सेट करना होगा – mdipierro

-1

आप देशी App इंजन मेलर का उपयोग करना चाहिए: http://code.google.com/appengine/docs/python/mail/sendingmail.html

+2

नहीं। वेब 2py के ऊपर एक परत है। पोर्टेबल होने के लिए web2py परतों को लिखा जाना चाहिए। – mdipierro

+0

* "चाहिए" * ऑपरेटिव शब्द होने के नाते ... लेखकों को खुद को बहुत भरोसा नहीं लगता है कि यह वास्तव में काम करता है। –

+1

... massimo लेखक – hoju

3

वेब 2py gluon.tools.Mail कक्षा जीएई पर काम करती है। देखें कोड स्निपेट 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