发送从开发服务器电子邮件--smtp_host = smtp.gmail.com
在回答这个问题Error sending e-mail via SMTP server on App Engine development server有一个nice solution by Blixt:发送从开发服务器电子邮件--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()
但Windows Vista中不会让我改变api/mail_stub.py
是否有另一种从开发服务器发送邮件的方法。其他选项(Sendmail和ISP不适合我)。谢谢!
编辑
我按照说明书here改变了api/mail_stub.py
我用下面的命令行选项:
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
但我从登录控制台此错误:
***********************************************************
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.
****************************************************
这是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
所有这些工作都没有这些命令行选项。任何建议,为什么这是行不通的?
如果你真的真的需要从dev_appserver发送真正的邮件,你应该在你的机器上设置你自己的邮件中继,然后指出SDK。我很好奇,为什么发送真正的电子邮件非常重要 - 但这是开发服务器,除了开发之外,您不应该使用它。
是的,谢谢,我同意。但是我仍然在学习基础知识,即使是简单的任务也需要时间和反复试验。例如,我在http://groups.google.com/group/google-appengine/browse_thread/thread/42e046e858c87aa3?hl=en#上发布了这个简单的脚本,即使那个简单的脚本不能像我想象的那样工作。因此,我部署了该脚本并查看它是否发送电子邮件。现在应用程序引擎已关闭,并且出现500个错误。但是你是对的,可能它不值得开发服务器发送电子邮件。我会继续上传到应用引擎,直到它工作。 – Zeynel 2010-11-19 00:23:46
等待在开发过程中将真实电子邮件发送到测试电子邮件地址有什么问题? – Triptych 2011-06-08 08:07:37
@Triptych Nothing - 让它正常工作只需很多工作,因为您需要一个接受信息的中继。查看控制台输出通常更容易。 – 2011-06-09 01:38:20
更改文件权限,以便您可以更改api/mail_stub.py
文件。
这不再是必要的
在/appengine/api/mail_stub.py
if self._allow_tls and smtp.has_extn ('STARTTLS'): smtp.starttls()
我使用的AppEngine SDK版本15年1月9日。
我看到两个问题。首先是使用端口25. Gmail仅通过加密连接进行身份验证。尝试587,因为它似乎工作时,端口465不会。这可能与STARTTLS有关。并且TLS必须通过命令行arg启用dev_appserver.py。如果这是明显的泥,那么它准确地反映了SMTP的状态。 – 2017-01-04 04:19:46