Django,sendmail密码不是来自设置

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

我正在使用Django的sendmail,我不使用设置中的密码。

当前我在设置中使用

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'my Email'
EMAIL_HOST_PASSWORD = 'its secret'
EMAIL_PORT = 587

在我看来,我使用:

from django.core.mail import EmailMultiAlternatives
EMAIL_HOST_PASSWORD = current_user.profile.gmail_app_pass
EMAIL_HOST_USER = email_user = request.user.email
toaddr = 'to@email'
tocc = 'toCC@email'
user_bcc = 'toBCC@email'
subject = 'Test Email from Django'
msgHtml = '<p>This is an <strong>important</strong> message.</p>'            

msg = EmailMultiAlternatives(subject, msgHtml, EMAIL_HOST_USER, [toaddr],  bcc=[user_bcc], cc=[tocc])
msg.attach_alternative(msgHtml, "text/html")
msg.send()

但是如何从设置中覆盖设置?在我的情况下,EMAIL_HOST_PASSWORD和EMAIL_HOST_USER

我在Python 3.6上使用Django 2.1

django python-3.x sendmail
1个回答
0
投票

您可以将密码存储在.env文件中。我建议使用python decouple fot他的工作后你可以检索变量

.ENV

EMAIL_PASSWORD=Mypassword
EMAIL_USE_TLS=True
EMAIL_HOST=smtp.gmail.com
....

settings.朋友

EMAIL_HOST_PASSWORD = config('EMAIL_PASSWORD')
....
© www.soinside.com 2019 - 2024. All rights reserved.