我找到了一个关于如何使用django发送电子邮件的链接:https://docs.djangoproject.com/en/dev/topics/email/ 我按照这个例子得到了这个:
>>> from django.core.mail import send_mail
>>> send_mail('dfdf', 'dfdfdf', 'logadrinab@agile.com.ph', ['ddcahanap@agile.com.ph'])
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/__init__.py", line 61, in send_mail
connection=connection).send()
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 79, in send_messages
new_conn_created = self.open()
File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 42, in open
local_hostname=DNS_NAME.get_fqdn())
File "/usr/lib/python2.7/smtplib.py", line 239, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 295, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python2.7/smtplib.py", line 273, in _get_socket
return socket.create_connection((port, host), timeout)
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
error: [Errno 111] Connection refused
>>>
我认为这是因为EMAIL_HOST和EMAIL_PORT,如果是这样的话 我在哪里可以找到它以及如何使用它?如果不是,任何人都可以给我一个关于如何在django发送电子邮件的想法吗?
提前感谢...
答案 0 :(得分:3)
在项目的settings.py中,请务必设置EMAIL_HOST
,EMAIL_PORT
和其他设置(如果您的主机需要身份验证,请设置用户名或密码)。
另外,请确保使用manage.py shell命令运行控制台,而不是正常的python
shell,因此django会正确加载设置。
答案 1 :(得分:0)
你是对的,你需要在settings.py中指定正确的主机和端口。 你打算用什么服务器?例如,如果它是您的托管服务提供商的服务器,最好联系托管支持以获取此信息。
答案 2 :(得分:0)
您收到错误,因为您的系统上没有安装邮件传输代理。
您只需要在默认配置中安装postfix
软件包(它会在安装过程中询问您一些问题,只需选择默认值)。
并且无需更改配置或settings.py
或其他任何内容。
答案 3 :(得分:0)
您需要为当前主机正确配置SMTP email backend,并像刚才那样以交互方式进行测试。
他们可能正在使用TLS或备用端口 - 您应该在帐户设置中查找它。或者,您可以将Django配置为使用远程服务主机(如Gmail),以便在没有其他选项时自行启动。