【发布时间】:2011-01-21 01:54:26
【问题描述】:
据我所知,Django 仅支持使用 SMTP 发送邮件。
我想在 Django 中从我的脚本发送电子邮件,但不想设置 SMTP 服务器(这对我来说太复杂了,我是 linux 新手)。
是否可以像在 PHP 中一样在 Django 中发送邮件,而无需提供 SMTP 登录名、密码等?
【问题讨论】:
-
您的托管服务提供商应该在您的服务器上设置 SMTP。如果您不确定设置,请与他们联系。
据我所知,Django 仅支持使用 SMTP 发送邮件。
我想在 Django 中从我的脚本发送电子邮件,但不想设置 SMTP 服务器(这对我来说太复杂了,我是 linux 新手)。
是否可以像在 PHP 中一样在 Django 中发送邮件,而无需提供 SMTP 登录名、密码等?
【问题讨论】:
PHP 使用 UNIX 系统上的 sendmail 来发送电子邮件。我猜在你设置系统的某个时候,就是配置了sendmail。
Python 有一个API to sendmail,也许对你有帮助。但是无论如何都会涉及到一个 SMTP 服务器 ;)
【讨论】:
Postfix 和 Exim 旨在处理与将电子邮件从主机转发到世界其他地方相关的所有问题。你的应用程序对他们说 SMTP,他们转身和目的地说 SMTP。但他们非常非常擅长。
nothing stopping you 来自对您要发送到的电子邮件地址的 MX 记录进行 DNS 查找,并直接连接到该服务器并向其发送 SMTP。除了应该问你“这真的比 apt-get install exim4 更容易吗?”的唠叨声音之外,什么都没有?
【讨论】:
那么 PHP 是如何做到的呢?用魔法?
如果您没有 SMTP 服务器,请注册一个 GMail 帐户并使用它。
【讨论】:
您的托管服务提供商可能已经为其机器上的所有 PHP 页面设置了主机和任何可能的登录凭据。这将使它看起来不需要任何东西。您的托管服务提供商应该非常乐意为您提供信息。尝试在他们的常见问题解答、论坛和他们发送的任何欢迎电子邮件中搜索 SMTP。如果您的搜索没有找到任何结果,请直接询问他们。
获得信息后,您需要使用这些email settings 将其添加到您的 settings.py 文件中:
# *** settings.py ***
#EMAIL_HOST = 'host here'
#EMAIL_PORT = 587
#EMAIL_HOST_USER = 'your user here'
#EMAIL_HOST_PASSWORD = 'your password'
#EMAIL_USE_TLS = True
取消注释并根据需要使用尽可能多的这些设置。
【讨论】:
我想,既然您使用的是 Django,那么您对 Python 的理解通常都很好。有一个新的 Python MTA 正在进化,看起来很有前途http://lamsonproject.org/docs/hooking_into_django.html
【讨论】: