django - 在小型 Django 应用程序中接收和回复电子邮件的便捷解决方案
问题描述
我正在开发一个 Django 应用程序,它在其某些组件中使用电子邮件(但不是其核心)。我正在寻找满足以下要求的简单且廉价的解决方案:
- 仅使用应用程序的自定义域(无
username@gmail
地址) - Django 可以通过编程方式发送电子邮件(错误报告、表单中的用户数据)
- 管理员可以通过他们选择的电子邮件客户端接收和回复邮件
- 提供商应允许发送大量电子邮件(不是优先事项)
- 解决方案不需要是免费的
到目前为止我考虑过的解决方案:
- 使用我的托管服务提供商:可以理解,他们不支持 VPS 客户的自定义电子邮件帐户
- Amazon SES:可用于发送电子邮件,但收到的电子邮件将放在 S3 存储桶中;我不清楚如何将其连接到电子邮件客户端
- Sendgrid:适用于发送电子邮件,但处理入站邮件的唯一方法是将其作为 HTTP POST 请求转发到视图
- 通过管理界面阅读和发送电子邮件的 Django 扩展:我无法使用我的电子邮件客户端
- 谷歌工作区:似乎这可以工作。我的问题是它包含了很多我并不真正需要的功能。这个事情谁有经验?
我真正需要的只是将标准电子邮件帐户别名为我的自定义域。
解决方案
您可以使用任何支持 SMTP 客户端(包括 Google Wspace)的提供商创建您的自定义域电子邮件帐户,并将 SMTP 凭据配置到 Django 的电子邮件后端(或使用更高级的电子邮件包,例如 Django-Anymail)。
在 settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.email_provider_server.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'email_account_user_name'
EMAIL_HOST_PASSWORD = 'secret_password'
EMAIL_USE_TLS = True
通过提供商的 webmail 接收电子邮件和回复,或在 Outlook/Thunderbird/WindowsMail 等桌面客户端中配置 IMAP/SMTP。
提供商将为您提供 IMAP/SMTP 设置。最佳实践是通过环境变量等将密码输入 Django 的 settings.py 以确保安全。
推荐阅读
- python - 我可以使用百分比随机化 Python 中的列表吗?
- java - 我可以从非 UI 应用程序获得 Youtube 报告 API 的授权吗?
- php - 将 Word 文件转换为 Twig 并保留 Twig 指令
- tree - 从树形图中计算拉普拉斯算子和特征值/向量
- distance - 使用空间索引提升点到多边形的距离查询
- database - 数据库设计协助
- php - 我想删除路由登录而不干扰我的登录,Laravel 7
- xml - XML 序列化 - 原始文本(转义和字符)
- sql - STRING_AGG 具有不同的无子查询
- macos - 如何从 mac 上的 node.js 脚本启动电子应用程序?