从登录用户 Django 发送电子邮件

Posted

技术标签:

【中文标题】从登录用户 Django 发送电子邮件【英文标题】:Send Email From Logged in User Django 【发布时间】:2021-04-05 14:30:17 【问题描述】:

假设我有一个应用程序,其中所有用户在用户模型中都有一个电子邮件地址和密码。我们还假设所有用户都使用相同的电子邮件主机和端口。是否可以将下面显示的 EMAIL_HOST_USER 和 EMAIL_HOST_PASSWORD 设置为从用户模型中提取的变量?

这样,当登录用户使用电子邮件发送功能时,它来自他们的电子邮件,而不是 settings.py 中定义的某个单个电子邮件帐户,如下所示?

‘’’

EMAIL_HOST = 'smtp.sendgrid.net' 电子邮件端口 = 587 EMAIL_HOST_USER = 'parsifal_app' EMAIL_HOST_PASSWORD = 'mys3cr3tp4ssw0rd' EMAIL_USE_TLS = 真

‘’’

【问题讨论】:

【参考方案1】:

假设你提到的所有事情

这绝对可以做到,但是您仍然需要在所有这些帐户中手动启用安全性较低的应用程序访问(作为一种安全措施),这会使您的电子邮件易受攻击。

更多关于不太安全的应用程序在这里less secure apps

此外,您需要以原始形式(非加密)存储密码以满足此要求,并且根本不建议以非散列/加密形式存储用户密码。

您绝对应该为此考虑Gmail API

【讨论】:

以上是关于从登录用户 Django 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

django:从管理面板向用户发送邮件

如何使用 django-rest-auth 和 Mailgun 从 Django 发送密码重置电子邮件

如何使用 allauth 和 rest-auth 从 React 前端在 Django 中重新发送确认电子邮件

使用 django 通过模板管理 pdf 并作为电子邮件附件发送

从 Django 代码调用 Zapier 触发器

如何通过电子邮件强制执行 Django 用户注册单步(而不是两步)过程?