【问题标题】:Django SMTP [Errno 111] Connection refusedDjango SMTP [Errno 111] 连接被拒绝
【发布时间】:2018-03-29 10:31:34
【问题描述】:

我正在尝试使用 django 和 sendgrid SMTP 服务器从 Web 应用程序发送电子邮件。它在本地运行良好,但是当我尝试在 pythonanywhere 上使用它时,我得到了

error: [Errno 111] Connection refused

相关视图的代码是

def contact(request):
    if request.method == 'POST':
        form = EmailForm(request.POST)

        if form.is_valid():
            mail = form.cleaned_data

            send_mail(
                'Automated Enquiry',
                'A user is interested in part ' + mail['part'] + '.Their message: ' + mail['msg'],
                mail['email'],
                ['myemail@gmail.com'],
                fail_silently = False,
            )

            return render(request, 'manager/error.html', {'msg': "Thanks, we will be in touch as soon as possible"})

    else:
        part = request.GET.get('part', '')
        form = EmailForm()

    return render(request, 'manager/contact.html', {'form': form, 'part':part})    

在我的setting.py中:

EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'myuser'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

它也不能从控制台工作。 任何帮助将不胜感激。

【问题讨论】:

  • 尝试从控制台远程登录 smtp 服务器
  • 我试过 telnet smtp.sendgrid.net 587 并得到 telnet: Unable to connect to remote host: Connection denied @chakri
  • 我刚刚用谷歌搜索了它,这就是问题所在,我应该在询问之前检查一下,非常感谢。 @chakri

标签: python django smtp


【解决方案1】:

PythonAnywhere 上的免费用户限制了对 whitelist 网站的 Internet 访问,并且只允许使用 HTTP/HTTPS 协议,因此您无法从免费帐户建立到 sendgrid 的 SMTP 连接。

您可以通过免费帐户使用 gmail,pythonanywhere 有 instructions here

或者您可以切换到使用 sandgrid HTTP api:https://sendgrid.com/docs/Integrate/Frameworks/django.html

【讨论】:

  • 非常感谢,我打算尽快升级到黑客帐户,这样可以解决这个问题吗?
  • 是的,应该可以。如果您需要更多帮助,请发送电子邮件至 support@!
猜你喜欢
  • 2016-03-01
  • 2011-08-13
  • 2013-04-06
  • 2019-12-13
  • 2020-11-22
  • 2014-09-14
  • 2021-06-08
  • 2021-08-23
  • 2016-11-12
相关资源
最近更新 更多