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)
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 –
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 ... –