如何配置 Django 通过 Postfix 发送邮件? [关闭]

Posted

技术标签:

【中文标题】如何配置 Django 通过 Postfix 发送邮件? [关闭]【英文标题】:How do you configure Django to send mail through Postfix? [closed] 【发布时间】:2014-12-07 14:32:34 【问题描述】:

如何配置 Django 和 Postfix 来为 Django 应用程序发送电子邮件?

我可以使用 Gmail 服务器设置完成此操作,但我想使用我自己的域从我自己的服务器发送电子邮件。

【问题讨论】:

如果 django 可以配置为使用 SMTP 服务器,您可能只需安装 postfix 并将 django 指向 localhost:25。 我不明白。你的意思是把它放在 settings.py EMAIL_HOST = 'localhost' EMAIL_PORT = 25 ? 是的,完全正确。假设后缀设置正确,我认为应该可以。我对 django 不熟悉,但从 their documentation 来看,这些是正确的设置。 我已经这样做了。没用。 先调试postfix邮件服务器。试着在机器上输入telnet localhost 25 看看你是否得到回应。如果您收到类似于220 hostname.local ESMTP Postfix 的响应,则它会打开。键入 quit,然后键入 mailq 检查邮件队列。这将显示您的消息是否未送达。推理会在邮件日志中,通常是/var/log/maillog 【参考方案1】:

在意识到这实际上很简单之前,我敲了很多次头:

将此添加到您的 settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'Whatever <whatever@example.com>'

还要确保在您的服务器 (how) 上设置了完全限定的域名(例如 mybox.example.com),

那么你需要在你的 /etc/postfix/main.cf 中有这些行:

myhostname = mybox.example.com
mydestination = localhost.server.com, localhost, example.com

您还必须在您的 dns 服务器(以及您的注册商,如果您通过它们处理 dns 查找)为您的域设置正确的 MX 记录(检查 here)

【讨论】:

以上是关于如何配置 Django 通过 Postfix 发送邮件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Postfix 不发送邮件

如何在Ubuntu 16.04上安装并配置Postfix作为只发送SMTP服务器

postfix python发送邮件脚本配置

Postfix邮件

Postfix 邮件发送服务器搭建

centos 7 postfix配置163邮箱发送邮件