0
我在Heroku的生產環境中遇到了send_mail函數的問題。Django:send_mail不能正常工作[僅限於生產]
我的settings.py對於本地和生產是相同的,當我在本地主機上測試時,Gmail正確地發送了電子郵件,但由於某種原因,我得到了500服務器錯誤,我甚至沒有收到錯誤我的管理員電子郵件中的日誌來自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 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)
我不知道原因,但同樣的事情發生在我身上Django的send_mail生產卡住有這個問題,但最終離開它,並使用smtplib –
我在生產上打開調試=真看到錯誤,我得到了'SMTPAuthenticationError' 我現在明白了這個問題。當我從本地環境發送時,Gmail將其視爲來自我的計算機,這沒關係。但是當我在製作中使用它時,它來自弗吉尼亞州的阿什伯恩,EUA和Gmail並不接受,即使當我說這是我時,但我從來沒有與其他帳戶發生過類似的問題。 不知道現在如何解決這個問題... –