Django:send_mail 不工作 [仅用于生产]
Django: send_mail not working [only for production]
我在 Heroku 的生产环境中使用 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@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, VA, EUA(Heroku 应该是这样做的地方)访问我的帐户不满意。所以我不得不稍微调整一下我的配置,最后我更改了一个新的(更安全的)密码,一切都开始正常工作了。
简而言之:
GMAIL 有问题
更改密码并开始使用
我在 Heroku 的生产环境中使用 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@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, VA, EUA(Heroku 应该是这样做的地方)访问我的帐户不满意。所以我不得不稍微调整一下我的配置,最后我更改了一个新的(更安全的)密码,一切都开始正常工作了。
简而言之:
GMAIL 有问题
更改密码并开始使用