在 django 中发送(发件人)邮件配置
Posted
技术标签:
【中文标题】在 django 中发送(发件人)邮件配置【英文标题】:Sending(From) Mail configuration in django 【发布时间】:2020-06-14 13:44:03 【问题描述】:我在 settings.py 文件中配置了电子邮件 SMTP 配置,如下所示
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = 真 EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = '来自邮件' EMAIL_HOST_PASSWORD = '密码' EMAIL_PORT = 587现在它工作正常,但我的问题是部署项目后如何通过用户输入表单更改 from_mail/password 等任何参数...只需更新/更改电子邮件或密码。
【问题讨论】:
在 settings.py 中,您需要从不同的文件(如 yml 文件)导入凭证,这样没有人可以看到凭证。并在.gitignore
中添加 yml 文件,这样我就不会上传到存储库中。如果你想从用户那里获取电子邮件和密码,你只需要send_mail
函数来做到这一点。 settings.py
的凭据不需要在那里。
【参考方案1】:
你可以在django email函数的函数调用处随时更改参数:
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
这里解释了如何设置 auth_user/auth_password: Django Docs Sending email
【讨论】:
【参考方案2】:首先,Django 文档明确指出您不应在运行时更改设置。
https://docs.djangoproject.com/en/2.2/topics/settings/#altering-settings-at-runtime
幸运的是,send_mail()
方法允许使用 auth_user
和 auth_password
参数覆盖默认的 EMAIL_*
设置。
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
auth_user='new_user',
auth_password='new_password',
)
文档:https://docs.djangoproject.com/en/2.2/topics/email/#send-mail
【讨论】:
以上是关于在 django 中发送(发件人)邮件配置的主要内容,如果未能解决你的问题,请参考以下文章