google-app-engine - 使用 --smtp_host=smtp.gmail.com 从开发服务器发送电子邮件

标签 google-app-engine smtp

在问题的回答Error sending e-mail via SMTP server on App Engine development server有一个nice solution by 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 不适合我)。谢谢!

编辑

我根据说明更改了 api/mail_stub.py here我使用以下命令行选项:

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

但我从日志控制台收到此错误:

***********************************************************
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

所有这些都可以在没有这些命令行选项的情况下工作。为什么这不起作用有什么建议吗?

最佳答案

如果您真的、真的需要从 dev_appserver 发送真实的电子邮件,您应该在您的机器上设置您自己的邮件中继,并将 SDK 指向它。不过,我很好奇为什么发送真实的电子邮件如此重要 - 这是开发服务器,您不应该将它用于开发以外的任何用途。

关于google-app-engine - 使用 --smtp_host=smtp.gmail.com 从开发服务器发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4211747/

相关文章:

ssl - 哪种 TLS 方法更适合端口 587?

java - 使用 Java 和 Cloud SQL 的 AppEngine 托管虚拟机

java - 使用 Blobstore 将大文件上传到 Google App Engine

google-app-engine - Google App Engine 任务期限

php - 如何检测域是否已捕获所有接受电子邮件的策略?

c# - 为什么忽略 SmtpClient.UseDefaultCredentials?

android - cloudBackend.setCredential 未设置 CloudEntity 的 createdBy/updatedBy/owner 属性

google-app-engine - Google App Engine 中生产和测试环境的最佳实践

PHP、SMTP - 电子邮件中的主题将国际字符显示为 HTML_Entities

c# - 可以在 C# 中的委托(delegate)上传递 System.Net.Mail.MailMessage 对象吗?