Отправка электронной почты с сервера dev с помощью --smtp_host = smtp.gmail.com - PullRequest
4 голосов
/ 18 ноября 2010

В ответе на вопрос Ошибка при отправке электронной почты через SMTP-сервер на сервере разработки App Engine . * Blixt :

есть хорошее решение
"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()

Но Windows Vista не позволила бы мне изменить api/mail_stub.py

Есть ли другой способ отправки почты с сервера разработки. Другие варианты (Sendmail и ISP мне не подходят). Спасибо!

EDIT

Я изменил api/mail_stub.py в соответствии с инструкциями здесь и использую следующие параметры командной строки:

dev_appserver.py  
--smtp_host=smtp.gmail.com 
--smtp_port=25 
--smtp_user=xxxx@gmail.com 
--smtp_password=gmail_pw 
C:\Users\A\Desktop\repeater # path to root directory

Но я получаю эту ошибку из Log Console:

***********************************************************
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'--smtp_user=xxxx@gmail.com', 
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.

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

Это 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

Все это работает без этих параметров командной строки. Любые предложения, почему это не работает?

Ответы [ 3 ]

2 голосов
/ 19 ноября 2010

Если вам действительно нужно отправлять реальное электронное письмо с dev_appserver, вы должны настроить собственное почтовое реле на своем компьютере и указать на это SDK.Мне любопытно, почему так важно отправлять настоящие электронные письма - это сервер разработки, и вы не должны использовать его ни для чего, кроме разработки.

1 голос
/ 18 декабря 2014

Это больше не нужно

в /appengine/api/mail_stub.py

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

Я использую Appengine SDK версии 1.9.15.

1 голос
/ 18 ноября 2010

Измените права доступа к файлу, чтобы вы могли изменить файл api/mail_stub.py.

...