2009-06-09 22 views
12

Estoy intentando enviar correo electrónico utilizando this sample code y estas opciones de línea de comandos:envío de correo electrónico a través del servidor SMTP en el servidor de desarrollo de App Engine error

dev_appserver.py --smtp_host=smtp.gmail.com --smtp_port=25 [email protected]_password=k1tt3ns myapp 

Sin embargo, recibo el siguiente error cuando mi aplicación intenta enviar correo electrónico (en el servidor de desarrollo):

Traceback (most recent call last): 
    File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 500, in __call__ 
    handler.post(*groups) 
    File "C:\Documents and Settings\desk\Desktop\apps\temp\main.py", line 139, in post 
    """) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\mail.py", line 205, in send_mail 
    message.send(make_sync_call) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\mail.py", line 474, in send 
    make_sync_call('mail', self._API_CALL, message, response) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 68, in MakeSyncCall 
    apiproxy.MakeSyncCall(service, call, request, response) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 240, in MakeSyncCall 
    stub.MakeSyncCall(service, call, request, response) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub.py", line 80, in MakeSyncCall 
    method(request, response) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\mail_stub.py", line 203, in _Send 
    self._SendSMTP(mime_message, smtp_lib) 
    File "C:\Program Files\Google\google_appengine\google\appengine\api\mail_stub.py", line 133, in _SendSMTP 
    smtp.login(self._smtp_user, self._smtp_password) 
    File "C:\Python26\lib\smtplib.py", line 552, in login 
    raise SMTPException("SMTP AUTH extension not supported by server.") 
SMTPException: SMTP AUTH extension not supported by server. 
+0

Primero asegúrese de que su ISP le permita usar un servidor SMTP de terceros para enviar correos electrónicos. La mayoría lo hace, pero algunos proveedores bloquearán el acceso a los servidores SMTP para asegurarse de que sus clientes no comiencen a enviar spam al Mundo. –

Respuesta

18

dev_appserver.py no soporta TLS que es requerido por Gmail. Puede activarlo mediante la adición de unas pocas líneas en api/mail_stub.py:

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

Nota! Esa es la solución rápida y sucia. Debe agregar algún tipo de indicador para indicarle si desea usar TLS o no, ya que no siempre es deseable.

+0

Hola Blixt, gracias por la solución dada de mi solicitud, con los cambios anteriores estaba funcionando bien ... lo mismo que gmail, mi compañía es un dominio en Google, con los cambios de los detalles de mi compañía no funciona ... significa en lugar de gmail Di el nombre de mi empresa ... ¿es correcto? como dijiste antes, la solución no es la preferida, lo que podría ser la solución correcta. – SKSK

+0

y luego en implementación, todavía funciona? No creo que pueda editar un archivo desde el motor de la aplicación de google api sdk –

+0

Sí. La API API en vivo está configurada por Google, por lo que no tiene que preocuparse por cómo se realiza la conexión a los servidores de correo. – Blixt

4

@Raymond

ejecute el siguiente comando en el terminal:

find/-name "mail_stub.py" -type f 2>/dev/null 

En mi caso devuelve:

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/mail_stub.py 
0

Los otros métodos ya no son necesarias:

Configurando lo siguiente en /appengine/api/mail_stub.py

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

funciona para mí en appengine SDK versión 1.9.15

0

La cuenta de Google se utilizan para enviar mensajes de correo electrónico desde una aplicación debe tener algunos ajustes de seguridad desactivadas en https://security.google.com/settings.

  • Deshabilitar el acceso de aplicaciones menos seguras: acceso para aplicaciones menos seguras: Activar

Si continúa teniendo problemas de autenticación puede que tenga que revisar los dispositivos & actividad en el https://security.google.com/settings/security/activity

Cuestiones relacionadas