2017-07-15 7 views
0

Ich habe Probleme mit meiner send_mail-Funktion in meiner Produktionsumgebung in Heroku.Django: send_mail funktioniert nicht [nur für Produktion]

Meine settings.py sind identisch für lokale und für die Produktion und Gmail sendet die E-Mails korrekt, wenn ich im localhost testen, aber aus irgendeinem Grund bekomme ich einen 500 SERVER ERROR und ich bekomme nicht einmal den Fehler Protokolle von Django in meiner Admin-E-Mail (wahrscheinlich aus dem gleichen Grund).

Ich habe das schon vorher gemacht und es ist wirklich seltsam, dass dies passiert. Und das gleiche gmail hatte das schon für die lokale Entwicklung getan, also glaube ich nicht, dass das Problem da ist.

Ich benutze Python3.6, Django1.11 und Heroku.

mein Code hier:

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 protected]' 
     to_email = ['[email protected]'] 

     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) 
+0

zu arbeiten ich weiß nicht den Grund, aber gleiche passierte mir mit Django send_mail in der Produktion stecken mit diesem Problem aber verließ es letztlich und verwendet smtplib –

+0

Ich drehte Debug = True auf Produktion, um den Fehler zu sehen, und ich habe 'SMTPAuthenticationError' Ich verstehe jetzt das Problem. Wenn ich von einer lokalen Umgebung aus sende, sieht Google Mail, dass es von meinem Computer kommt, und das ist in Ordnung. Aber wenn ich es in der Produktion mache, kommt es von Ashburn, VA, EUA und Gmail akzeptiert das nicht, auch wenn ich sagte, dass ich es war, aber ich hatte nie ein ähnliches Problem mit anderen Accounts. Ich bin mir nicht sicher, wie ich das jetzt beheben soll ... –

Antwort

0

Okay, stellt sich heraus, es hat nichts mit meinem Code zu tun hatte. Google Mail war nicht zufrieden damit, dass mein Konto von Ashburn, VA, EUA aus aufgerufen wurde (wo Heroku angeblich seine Sache macht). Also musste ich ein bisschen mit meinen Konfigurationen spielen und am Ende änderte ich das Passwort für ein neues (sichereres) und alles begann gut zu funktionieren.

Kurz:

Das Problem wurde mit GMAIL

das Passwort geändert und es begann

Verwandte Themen