如何在django发送电子邮件?

时间:2011-12-15 08:06:10

标签: python django sendmail

  

可能重复:
  Django - [Errno 111] Connection refused

我找到了一个关于如何使用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发送电子邮件的想法吗?

提前感谢...

4 个答案:

答案 0 :(得分:3)

在项目的settings.py中,请务必设置EMAIL_HOSTEMAIL_PORT和其他设置(如果您的主机需要身份验证,请设置用户名或密码)。

另外,请确保使用manage.py shell命令运行控制台,而不是正常的python shell,因此django会正确加载设置。

答案 1 :(得分:0)

你是对的,你需要在settings.py中指定正确的主机和端口。 你打算用什么服务器?例如,如果它是您的托管服务提供商的服务器,最好联系托管支持以获取此信息。

答案 2 :(得分:0)

您收到错误,因为您的系统上没有安装邮件传输代理。

您只需要在默认配置中安装postfix软件包(它会在安装过程中询问您一些问题,只需选择默认值)。

并且无需更改配置或settings.py或其他任何内容。

答案 3 :(得分:0)

您需要为当前主机正确配置SMTP email backend,并像刚才那样以交互方式进行测试。

他们可能正在使用TLS或备用端口 - 您应该在帐户设置中查找它。或者,您可以将Django配置为使用远程服务主机(如Gmail),以便在没有其他选项时自行启动。