使用Django模块在GAE上发送电子邮件(django.core.mail)

时间:2013-02-19 06:53:03

标签: django google-app-engine djangoappengine django-mailer

在将我的应用程序迁移到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模块的电子邮件并了解该错误?

2 个答案:

答案 0 :(得分: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!")

答案 1 :(得分:-1)

我弄清楚了为什么会出现这个错误:

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

要做的两个步骤:

  1. 导入第三方模块 - &gt; appengine_emailbackend

  2. 在settings.py文件中记下以下一行:

    EMAIL_BACKEND ='appengine_emailbackend.async.EmailBackend'

    EMAIL_BACKEND ='appengine_emailbackend.EmailBackend'

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

    有人可以帮忙吗?