django - 电子邮件服务器在附加到 django 的 postgresql 上运行 sql 查询
问题描述
我将提供一些关于我的设置的信息,尽管这个问题可能有点武断。
我正在使用托管在 heroku 上的 django 和 django-rest-framework 作为颤振应用程序的后端。我正在为数据库使用 heroku postgres 插件。
我的目标是建立用户电子邮件验证系统,但由于我不会进入的原因,这种方式有点不合常规。
我想让用户向指定的地址发送电子邮件,并在每封收到的电子邮件上运行一个简单的更新 sql 查询以将该用户设置为活动状态。查询不需要帮助。
我正在寻找可能使这成为可能的电子邮件服务器的建议。如果我可以使用 django ORM 来做到这一点,那就更好了,但不是必需的。
我一直在研究 Outlook 上的 vba,但 Office 365 以成本为代价推出了很多我不感兴趣的功能。如果你能指出我制作 vba 宏以完成工作的正确方向,那就太好了,但欢迎其他想法。
任何建议表示赞赏。谢谢您的帮助。
解决方案
一种选择是将入站电子邮件路由到 Mailgun、Mandrill、Postmark 等服务。这些服务能够将入站电子邮件转换为对应用程序上的 webhook 发出的请求。因此,您可以将入站电子邮件视为 Web 请求。anymail是一个很好的 Django 库,可以跨多个提供者处理此问题。
设置好 webhook 后,您就可以访问普通的 Django 应用程序和 ORM。这应该允许你做你想做的事。
from anymail.signals import inbound
from django.dispatch import receiver
@receiver(inbound) # add weak=False if inside some other function/class
def handle_inbound(sender, event, esp_name, **kwargs):
message = event.message
print("Received message from %s (envelope sender %s) with subject '%s'" % (
message.from_email, message.envelope_sender, message.subject))
推荐阅读
- java - 具有动态布局的自定义对话框未正确显示
- ios - 在创建新密钥并删除旧密钥后,我在我的 iOS Xcode 项目中使用了适用于 iOS 的 Google Maps SDK 的不受限制的 api 密钥
- azure - 从私有 docker 映像在 azure 上运行单个容器应用程序返回::( 应用程序错误
- java - 限制或阻止方法实现
- spring - 具有连接到一个数据库的 liquibase 的多个应用程序
- php - Laravel - 为什么我在同一项目中的一台 PC 和另一台 PC 上都没有错误?
- c++ - 在标准 C++ 中完全禁用某些代码?
- java - 如何通过单击列表视图项并将值发送到对话框以显示来创建自定义对话框?
- python - 如何为神经网络制作一个最小且可重复的示例?
- configuration - 允许用户访问不同的功能