0

在将我的应用程序迁移到 GAE 之前,我使用以下代码发送电子邮件并且效果很好:

from django.core.mail import send_mail

subject = 'Hello!'
msg = '\n \n Hello World!'
sender = settings.DEFAULT_FROM_EMAIL
to = ['xx@xx.com']

send_mail(subject,msg,sender,to,fail_silently=False)

现在,在迁移到 GAE(在 Python 2.7 上)之后,它就不起作用了。它只是抛出以下错误:

Exception Type: NotImplementedError
Exception Location: C:\Program Files(x86)\Google\google_appengine\google\appengine\api\remote_socket\_remote_socket.py in gethostbyaddr, line 256

我将 settings.py 文件配置为 follo

EMAIL_USE_TLS = True
EMAIL_HOST = 'xxx.yyy.com'
EMAIL_HOST_USER = 'my.account@yy.com'
EMAIL_HOST_PASSWORD = 'zzzzzzzzz'
EMAIL_PORT = 587

有没有人在 GAE 上使用 Django 模块发送电子邮件并知道该错误的一些信息?

4

2 回答 2

3

如果你想从 AppEngine 发送电子邮件,你应该使用mail.send_mail()

from google.appengine.api import mail

mail.send_mail(sender="Example.com Support <support@example.com>",
              to="Albert Johnson <Albert.Johnson@example.com>",
              subject="Your account has been approved",
              body="Hello, world!")
于 2013-02-19T09:32:59.173 回答
-1

我解决了为什么会出现该错误的问题:

GAE 不支持 Django send_mail。有必要在我们的应用程序中添加一个 Django 电子邮件后端以允许它在 GAE 上执行。

两步要做:

  1. 导入第三方模块 --> appengine_emailbackend

  2. 在您的 settings.py 文件中写下以下行之一:

    EMAIL_BACKEND = 'appengine_emailbackend.async.EmailBackend'

    EMAIL_BACKEND = 'appengine_emailbackend.EmailBackend'

即便如此,在使用该后端之后,它不会抛出任何错误,但它不会发送任何内容。

有人可以帮忙吗?

于 2013-02-19T07:41:05.073 回答