繁体   English   中英

Django:send_mail无效[仅用于生产]

[英]Django: send_mail not working [only for production]

我在Heroku的生产环境中的send_mail函数出现问题。

我的settings.py在本地和生产环境中都是相同的,当我在localhost进行测试时,Gmail可以正确发送电子邮件,但是由于某种原因,我收到了500 SERVER ERROR消息,甚至没有从Django中获取错误日志我的管理员电子邮件(可能出于相同的原因)。

我之前已经做过,这真是奇怪。 相同的gmail已经为本地开发完成了此操作,因此我认为问题不存在。

我正在使用Python3.6,Django1.11和Heroku。

这是我的代码:

settings.py

EMAIL_HOST = 'smtp.gmail.com'
from .passwords import EMAIL_HOST_USER
from .passwords import EMAIL_HOST_PASSWORD
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER

from .passwords import ADMINS
MANAGERS = ADMINS

views.py

from django.conf import settings
from django.core.mail import send_mail
from django.http import HttpResponseRedirect
from django.shortcuts import render

from .forms import LandingPageMapasForm
def mapas(request):
    form = LandingPageMapasForm(request.POST or None)
    context = {
        "form": form,
    }
    if form.is_valid():
        obj = form.save(commit=False)
        # obj.user = self.request.user
        obj.save()

        form_empresa = form.cleaned_data.get('empresa')


        subject = '%s - Solicitação de Orçamento' %(form_empresa)
        contact_message = 'message'
        context = {}
        from_email = 'email@gmail.com'
        to_email = ['mail@geoeng.com.br']

        send_mail(
            subject,
            contact_message,
            from_email,
            to_email,
            fail_silently = False,
        )

        return HttpResponseRedirect('http://geoeng.com.br/muito-obrigado/')

    return render(request, 'mapas.html', context)

好的,事实证明它与我的代码无关。 Gmail对我从弗吉尼亚州的Ashburn,EUA(据说是Heroku负责的地方)访问我的帐户感到不满意。 因此,我不得不花一些时间进行配置,最后我更改了新密码(更安全)的密码,一切开始正常进行。

简而言之:

问题与邮件有关

更改密码并开始工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM