Django-[Errno 111]连接被拒绝
当我发表评论时,不保存,崩溃(错误:[Errno 111]连接被拒绝),为什么 views.py models.py 管理Django-[Errno 111]连接被拒绝,django,Django,当我发表评论时,不保存,崩溃(错误:[Errno 111]连接被拒绝),为什么 views.py models.py 管理 谢谢 看起来您正在尝试发送邮件(send_mail()),并且您在设置中的设置.py不正确 你应该检查一下这些文件 出于调试目的,您可以使用以下命令设置本地smtpserver: python -m smtpd -n -c DebuggingServer localhost:1025 并相应地调整您的邮件设置: EMAIL_HOST = 'localhost' EMAI
谢谢 看起来您正在尝试发送邮件(
send_mail()
),并且您在设置中的设置.py
不正确
你应该检查一下这些文件
出于调试目的,您可以使用以下命令设置本地smtpserver:
python -m smtpd -n -c DebuggingServer localhost:1025
并相应地调整您的邮件设置:
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
这里记录了这一点:
作为启动专用调试服务器的替代方案,您可以使用最近添加到Django的。我们最近从Python调试电子邮件服务器转移到使用一个名为Mailcatcher的程序。Mailcatcher作为守护进程运行,以截获发送到端口1025的所有测试电子邮件,并与web服务器集成,以便您可以从浏览器查看截获的电子邮件。优势
- 如果需要,您可以将测试电子邮件视为HTML
- 集中管理所有测试电子邮件--它们会一直存在,直到您清除它们
- 从任何浏览器查看测试电子邮件,而不是在终端窗口中滚动
如果你不喜欢Ruby,我的一位同事已经将Mailcatcher的功能移植到了node.js——在这里查看MailDev:在你的服务器上安装postfix软件包,它就可以工作了。如果是ubuntu,请尝试:
sudo apt-get install postfix
在您的设置中,放置:
EMAIL_HOST = 'localhost'
安装postfix为我做到了这一点 这里似乎没有经过适当升级的答案,所以这一页可能有点混乱。文件中的注意事项: parameters settings.py具有默认值 当我安装postfix时,它至少在本地修复了这个问题
希望这能帮助另一个困惑的灵魂 此外,以下内容将有所帮助: 将以下最小设置放入服务器上的settings.py或local_settings.py文件中
EMAIL_HOST = 'localhost'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
你可以拥有自己的邮件服务器,而不是使用smtp.gmail.com,因为smtp.gmail.com有很多限制
您可以通过安装自己的邮件服务器来实现:
sudo apt-get install sendmail
EMailDump可用且有用本地服务器smtp,易于安装,这是用python开发的
对于开发和测试: 在Django 1.6+中,我们可以在settings.py中添加这一行
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
这将在控制台上显示邮件,以便于验证
注意:
邮件不会发送到Msg中指定的收件人。它只是用于开发和测试
为此,您需要配置文档中给出的SMTP服务器
仅供参考:我也遇到了这个错误。我没有使用gmail,而是决定使用postfix设置自己的邮件服务器 要在Ubuntu 12.04上设置后缀,请执行以下操作:
sudo apt-get install postfix
然后,将配置文件复制到/etc/postfix/:
cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
将以下行添加到main.cf:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination = localhost
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'Server <server@whatever.com>'
重新加载配置文件:
/etc/init.d/postfix reload
要测试并查看后缀是否正常工作,请执行以下操作:
telnet localhost 25
然后逐行输入以下内容:
mail from: whatever@whatever.com
rcpt to: your_real_email_addr@blah.com
data (press enter)
type whatever content you feel like to type
. (put an extra period on the last line and then press enter again)
如果它起作用,您应该看到如下内容:
250 2.0.0 Ok: queued as CC732427AE
接下来,在Django的settings.py中放入以下行:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination = localhost
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'Server <server@whatever.com>'
检查您的垃圾邮件收件箱,您应该会看到上面显示的电子邮件。注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(与另一个参考资料的中途停留相比,随着时间的推移,这些参考资料往往会过时)。请考虑在这里添加一个独立的概要,保持链接作为参考。这是更容易和完美完美链接:请参考下面的发送邮件链接。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'Server <server@whatever.com>'
./manage.py shell
>>> from django.core.mail import send_mail
>>> send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'], fail_silently=False)