Django-Google App Engine Flexible ENV上的SendMail

问题描述 投票:0回答:1

谁能告诉我如何配置在Google App Engine灵活环境中运行的Django应用程序以发送电子邮件? 我们正在尝试在帐户/注册期间向用户发送确认电子邮件(我们正在使用django-allauth)。 我们为发送邮件配置App Engine的尝试不起作用。 我们在这个简单的事情上浪费了整整四天的时间。

这是我们当前的Django设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_PASSWORD = "'********"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = '[email protected]'

我们的实际电子邮件地址(由上面的“ [email protected]”代替)是用于设置App Engine实例的所有者电子邮件地址。 在App Engine设置上,我们将“ [email protected]”配置为授权的电子邮件发件人。 我们验证了是否可以使用Django设置文件中提供的“ my_email_address”和密码成功登录App Engine和Gmail。

但是,当用户尝试注册时,sendmail步骤失败,并显示以下错误消息(我在下面编辑了服务器URL和电子邮件地址):

SMTPSenderRefused at /accounts/signup/
(530, b'5.5.1 Authentication Required. Learn more at\n5.5.1  https://support.google.com/mail/?p=WantAuthError c62sm5621898ioj.28 - gsmtp', '[email protected]')
Request Method: POST
Request URL:    https://my_server_name.appspot.com/accounts/signup/
Django Version: 1.11.9
Exception Type: SMTPSenderRefused
Exception Value:    
(530, b'5.5.1 Authentication Required. Learn more at\n5.5.1  https://support.google.com/mail/?p=WantAuthError c62sm5621898ioj.28 - gsmtp', '[email protected]')
Exception Location: /opt/python3.6/lib/python3.6/smtplib.py in sendmail, line 867
Python Executable:  /env/bin/python3.6
Python Version: 3.6.2

我们遵循了我们在网上可以找到的所有指示,但没有成功。 我们尝试为发件人使用我们的G-Suite电子邮件地址之一。 但是,由于我们尚未将App Engine配置为使用我们的自定义域(我们仍在appspot.com上),因此毫不奇怪,这没有用。

有什么帮助吗? 谢谢。

python django email google-app-engine google-app-engine-python
1个回答
1
投票

App Engine灵活的环境没有标准环境那样的内置邮件服务 。 您将需要使用SendGrid,Mailgun或Mailjet从灵活的环境发送电子邮件。

根据您的代码/应用程序,您也许可以配置一个单独的App Engine“ 服务 ”来处理需要触发来自应用程序的基于环境的标准子集的电子邮件的请求,这些子集可以使用标准环境的内置邮件服务。 App Engine应用程序可以是可以在两种环境中运行的服务的混合,甚至可以从一种服务到另一种服务使用不同的语言。

不确定是否可以在您的情况下使用,但可能会。

© www.soinside.com 2019 - 2024. All rights reserved.