2010-11-18 4 views
4

In der Antwort auf die Frage Error sending e-mail via SMTP server on App Engine development server gibt es eine nice solution by Blixt:von dev-Server gesendet E-Mail mit --smtp_host = smtp.gmail.com

"dev_appserver.py does not support TLS 
which is required by Gmail. You can 
enable it by adding a few lines in api/mail_stub.py:" 

# After smtp.connect(self._smtp_host, self._smtp_port) 
smtp.ehlo() 
smtp.starttls() 
smtp.ehlo() 

Aber Windows Vista würde mich api/mail_stub.py

nicht ändern lassen Gibt es eine andere Möglichkeit, E-Mails vom Entwicklungsserver zu senden? Andere Optionen (Sendmail und ISP sind nicht gut für mich). Vielen Dank!

EDIT

änderte ich den api/mail_stub.py nach Anweisungen here und ich verwende die folgenden Befehlszeilenoptionen:

dev_appserver.py 
--smtp_host=smtp.gmail.com 
--smtp_port=25 
[email protected] 
--smtp_password=gmail_pw 
C:\Users\A\Desktop\repeater # path to root directory 

Aber ich bekomme diese Fehlermeldung von Log-Konsole:

*********************************************************** 
2010-11-18 10:24:37 Running command: "['C:\\Python26\\pythonw.exe', 
'C:\\Program Files(x86)\\Google\\google_appengine\\dev_appserver.py', 
'--admin_console_server=', 
'--port=8080', 
u'dev_appserver.py', 
u'--smtp_host=smtp.gmail.com', 
u'--smtp_port=25', 
u'[email protected]', 
u'--smtp_password=gmail_pw 
C:\\Users\\A\\Desktop\\repeater', 
'C:\\Users\\A\\Desktop\\repeater']" 

Runs a development application server for an application. 

dev_appserver.py [options] <application root> 

Application root must be the path to the application to run in this server. 
Must contain a valid app.yaml or app.yml file. 

**************************************************** 

Dies ist die App.Yaml:

application: re-peater 
version: 1 
runtime: python 
api_version: 1 

handlers: 

- url: /favicon.ico 
    static_files: static/images/favicon.ico 
    upload: static/images/favicon.ico 

- url: /stylesheets 
    static_dir: stylesheets 

- url: /.* 
    script: repeater.py 

All dies funktioniert ohne diese Befehlszeilenoptionen. Irgendwelche Vorschläge, warum das nicht funktioniert?

+0

Ich sehe zwei Probleme. Zuerst wird Port 25 verwendet. Google Mail authentifiziert sich nur über eine verschlüsselte Verbindung. Versuchen Sie 587, wie es scheint, wenn Port 465 nicht funktioniert. Es könnte etwas mit STARTTLS zu tun haben. Und TLS muss über die Befehlszeile arg zu dev_appserver.py aktiviert werden. Wenn das klar ist wie Schlamm, dann spiegelt es genau den Status von SMTP wider. –

Antwort

2

Wenn Sie wirklich, wirklich echte E-Mails von der dev_appserver senden müssen, sollten Sie Ihre eigene Mail-Relay auf Ihrem Computer einrichten, und zeigen Sie das SDK darauf. Ich bin neugierig, warum es so wichtig ist, echte E-Mails zu verschicken - das ist der Entwicklungsserver, und Sie sollten ihn nicht für etwas anderes als die Entwicklung verwenden.

+0

Ja, danke, ich stimme zu. Aber ich lerne immer noch die Grundlagen und es braucht Zeit und Versuch und Irrtum, damit auch die einfachen Aufgaben funktionieren. Zum Beispiel habe ich dieses einfache Skript hier http://groups.google.com/group/google-appengine/browse_thread/thread/42e046e858c87aa3?hl=de# veröffentlicht und auch dieses einfache Skript funktioniert nicht so, wie ich mir das vorstellen würde . Also stelle ich dieses Skript bereit und sehe, ob es die E-Mail sendet. Und jetzt App-Engine ist down und ich bekomme 500 Fehler. Aber Sie haben Recht, wahrscheinlich ist es nicht wert, dass der Dev-Server E-Mails sendet. Ich werde weiterhin auf die App-Engine hochladen, bis es funktioniert. – Zeynel

+1

Warten Sie, was falsch ist, wenn Sie während der Entwicklung eine echte E-Mail an eine Test-E-Mail-Adresse senden? – Triptych

+0

@Triptych Nichts - es ist nur eine Menge Arbeit, damit es richtig funktioniert, da Sie ein Relay benötigen, das die Nachricht akzeptiert. Es ist im Allgemeinen einfacher, sich die Konsolenausgabe anzusehen. –

1

Ändern Sie die Dateiberechtigungen, sodass Sie die Datei api/mail_stub.py ändern können.

+0

Ich habe versucht, die Dateiberechtigungen zu ändern, aber Vista lässt das nicht zu. http://www.vistax64.com/vista-file-management/29148-vista-forces-read-only-file-setting.html – Zeynel

+0

Ich änderte die Datei, aber ich bekomme eine Fehlermeldung mit einem Problem im Stammverzeichnis. Ohne diese Befehlszeilenoptionen funktioniert der Dev-Server einwandfrei; app.yaml befindet sich im Verzeichnis. Irgendwelche Ideen, warum das nicht funktioniert? Ich habe oben einen EDIT mit mehr Code hinzugefügt. Vielen Dank. – Zeynel

1

Das ist nicht mehr notwendig

in /appengine/api/mail_stub.py

if self._allow_tls and smtp.has_extn ('STARTTLS'): smtp.starttls()

I appengine sdk Version 1.9.15 verwenden.

Verwandte Themen