在运行 Django 网站的 Debian 服务器上,当我需要发送电子邮件时出现错误。
收到的错误是
异常类型:gaierror 异常值:
[Errno -2] 名称或服务未知
异常位置:/usr/lib/python2.6/socket.py 中的 create_connection,第 547 行
您可以查看完整的错误日志这里。
经过测试,似乎是我的防火墙阻止了该请求。您可以看到我的iptable 文件(/etc/init.d/firewall)。我认为问题出在两条注释行上,它们本来应该接受所有已建立的连接。
当我取消注释它们时,出现错误iptables: No chain/target/match by that name.
谢谢
答案1
似乎您的服务器上的 DNS 或 Django 配置中的主机名有错误。
检查 settings.py 中的 EMAIL_HOST。如果没有明确设置,则它等于 localhost。如果域似乎没问题(存在或等于 localhost),则问题在于 DNS 解析(DNS 服务器无法正常工作或您的防火墙阻止与其连接)。
为了确保问题在防火墙内,请将 INPUT、FORWARD 和 OUTPUT 链的默认策略设置为 ACCEPT:
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
并检查问题是否仍然存在。