J'ai des problèmes avec ma fonction send_mail dans mon environnement de production à Heroku. Mes paramètres.py sont identiques pour le local et pour la production et Gmail envoie les emails correctement quand je teste dans le localhost, mais pour une raison quelconque je reçois une ERREUR SERVEUR 500 et je ne reçois même pas l'erreur les logs de django dans mon email d'Admin (probablement pour la même raison).Django: send_mail ne fonctionne pas [uniquement pour la production]
Je l'ai déjà fait avant et il est vraiment étrange que cela se produise. Et le même Gmail l'avait déjà fait pour le développement local, donc je ne pense pas que le problème soit là. J'utilise Python 3.6, Django 1.1 et Heroku.
Voici mon code:
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]ng.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)
Je ne sais pas la raison, mais même chose est arrivé à moi avec Django send_mail dans la production coincé avec ce problème mais laissé en fin de compte et utilisé smtplib –
J'ai tourné Debug = True sur Production pour voir l'erreur et j'ai 'SMTPAuthenticationError' Je comprends maintenant le problème. Lorsque j'envoie de l'environnement local, Gmail le voit comme venant de mon ordinateur et c'est ok. Mais quand je le fais en production ça vient d'Ashburn, VA, EUA et Gmail ne l'accepte pas, même quand j'ai dit que c'était moi, mais je n'ai jamais eu un problème similaire avec d'autres comptes. Vous ne savez pas comment résoudre ce problème maintenant ... –