Django send_mail 554中继访问被拒绝

2024-05-18 23:31:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在google上搜索了很多关于这个问题的信息,我在很多地方都发现了这个错误,但是我的问题没有答案。在

我有一个新安装的(debian)系统,基本上只包含一个django(1.3.0)安装和一个非常差的后缀。如果我这样做的话,Postfix是有效的

echo sth | mail somebody@provider.com

它完美地到达了。在

我试着用django发邮件

^{pr2}$

但我总是回想起一个错误:

Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python2.6/dist-packages/django/core/mail/__init__.py", line 61, in send_mail
    connection=connection).send()
  File "/usr/lib/python2.6/dist-packages/django/core/mail/message.py", line 248, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/usr/lib/python2.6/dist-packages/django/core/mail/backends/smtp.py", line 92, in send_messages
    sent = self._send(message)
  File "/usr/lib/python2.6/dist-packages/django/core/mail/backends/smtp.py", line 110, in _send
    email_message.message().as_string())
  File "/usr/lib/python2.6/smtplib.py", line 709, in sendmail
    raise SMTPRecipientsRefused(senderrs)
SMTPRecipientsRefused: {'user@external.hu': (554, '5.7.1 : Relay access denied')}

当然,我试过用不同的地址。只有一种情况是,当我把邮件发送到localhost(或者发送到这台机器上有mx的主机)时。在

mail.log中,我可以看到:

Apr 16 10:48:48 tkt postfix/smtpd[4886]: connect from tkt[217.112.142.235]
Apr 16 10:48:48 tkt postfix/smtpd[4886]: NOQUEUE: reject: RCPT from tkt[217.112.142.235]: 554 5.7.1 : Relay access denied; from= to= proto=ESMTP helo=
Apr 16 10:48:48 tkt postfix/smtpd[4882]: lost connection after RSET from tkt[217.112.142.235]
Apr 16 10:48:48 tkt postfix/smtpd[4882]: disconnect from tkt[217.112.142.235]

嗅了闻25号端口,我什么也看不见。在

有没有人知道如何解决这个问题(最好使用本地后缀)?在

这台机器在因特网站点上,正如我所写的,通过命令行发送邮件可以正常工作。在


Tags: djangoinfrompycoresendlibpackages
1条回答
网友
1楼 · 发布于 2024-05-18 23:31:04

我不是百分之百肯定,但我认为。。。在

echo sth | mail somebody@provider.com

…还有。。。在

^{pr2}$

…前者连接到IP地址127.0.0.1上的后缀,而后者连接到IP地址217.112.142.235上的后缀,尽管我不确定原因。它可能取决于您的Web服务器绑定到哪个IP地址。在

由于安全原因,Postfix通常默认配置为仅允许在连接到127.0.0.1时转发电子邮件。在

您可以通过添加。。。在

EMAIL_HOST='localhost'

…或重新配置后缀以允许从217.112.142.235进行中继,方法是将/etc/postfix/main.cf中的mynetworks参数从以下内容更改为。。。在

mynetworks = 127.0.0.0/8

…到某物清单。。。在

mynetworks = 127.0.0.0/8 217.112.142.235/32

…那就做。。。在

sudo service postfix restart

…让它重读那封信。在

相关问题 更多 >

    热门问题