2010-04-16 2 views
5

Ich versuche, eine E-Mail von meiner web2py-App zu senden, die auf GoogleAppEngine gehostet wird. Aber es funktioniert nicht. Ich benutzte die Mail-Funktion, die mit dem web2py gegeben wurde. Kann jemand das machen? Ich habe in der GAE-Dokumentation gelesen, dass die Python-Mail-Bibliothek nicht mit GAE funktioniert und die GAE-Mail-Bibliothek verwendet werden muss. Gilt es auch für web2py-Mail? DankE-Mail von einem web2py über GAE senden

+1

Wenn Sie sagen, „nicht funktioniert“, was meinst du genau? Gibt es Ihnen eine Fehlermeldung? Diese Seite scheint nicht zuversichtlich, dass E-Mail mit web2py + App Engine funktioniert: http://wiki.web2py.com/Sending_Email_with_Plain_Text_HTML_Versions_plus_Attachments –

+0

E-Mail wird nicht gesendet, und ich bekomme den folgenden Fehler Ich bekomme den folgenden Fehler. Mail.send Fehler: 'Modul' Objekt hat kein Attribut 'getaddrinfo' – felix

Antwort

5

Die web2py gluon.tools.Mail Klasse (das von dem Auth-Modul auch verwendet wird) arbeitet auf GAE und nicht-GAE aus der Box . Sie müssen nur die richtigen Einstellungen zu übergeben:

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" 

Es mehrere Kodierungen, MIME und Attachments unterstützt.

+0

Ich bekomme den folgenden Fehler. Mail.send failure: 'Modul' Objekt hat kein Attribut 'Getaddrinfo' und den Code für den Mail-Teil wird mail = Mail() mail.settings.server = 'smtp.gmail.com:587' mail .settings.login = 'username: passwordxperia x1' mail.settings.sender = '[email protected]' mail.settings.tls = Wahr oder Falsch mail.send (an, Betreff, Nachricht) Above Code funktioniert, wenn ich von meinem lokalen Rechner benutze, aber nicht einmal auf die GAE – felix

+1

hochlade, habe ich etwas in meinem obigen Kommentar verpasst und ich habe es korrigiert. Es ist wahr, dass Sie die GAE API haben müssen und es stimmt, dass web2py eine Abstraktionsschicht bietet.Sie können jedoch keine Verbindung zu einem externen Server herstellen, da smtplib Socket und Socket für GAE nicht benötigt. Unter dem Strich müssen Sie mail.settings.server = "gae" einstellen – mdipierro

3

Die Klasse web2py gluon.tools.Mail arbeitet mit GAE. Siehe Code-Schnipsel gluon.tools Linie 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) 

Das sind die richtigen Einstellungen ist auf 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" 

Siehe http://code.google.com/intl/en/appengine/docs/python/mail/emailmessagefields.html Sender arbeiten Die E-Mail-Adresse des Absenders, die Absenderadresse. Dies muss die E-Mail-Adresse eines registrierten Administrators für die Anwendung oder die Adresse des aktuell angemeldeten Benutzers sein. Administratoren können mithilfe der Verwaltungskonsole zu einer Anwendung hinzugefügt werden. Die E-Mail-Adresse des aktuellen Benutzers kann mit der Benutzer-API festgelegt werden.

Entschuldigung! Mein Englisch ist sehr schlecht. Ich hoffe zu helfen.

Celso Godinho ([email protected]) Brasilien Weltmeister Fußball 2010