我什至不确定如何调试它:我在 Django 的一个视图中使用 send_mail。它在本地使用应用程序时工作正常(使用我在生产中使用的相同 SMTP 设置),并且在生产环境中从 shell 工作正常(再次,使用相同的设置)。但是当我实际在生产中使用该应用程序时,消息不会发送。知道如何排除故障吗?
我不会粘贴整个视图,但这里是相关部分。
if request.method == 'POST':
message, form = decideform(request.POST)
if form.is_valid():
invitation.status = form.cleaned_data['status']
invitation.save()
message, form = decideform(request.POST)
update = 'Thank you for updating your status.'
# Send an email confirming their change
subject = 'Confirming your RSVP [%s %s]' % (invitation.user.first_name, invitation.user.last_name)
body = message + ' Remember, the URL to update or change your RSVP is http://the.url%s.' % invitation.get_absolute_url()
send_mail(subject, body, 'rsvp@mydomain.com', ['rsvp@mydomain.com', invitation.user.email], fail_silently=True)
这是我的 local_settings 文件中的相关位,为了安全起见,对重要的细节进行了更改:
EMAIL_HOST = 'mail.mydomain.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'rsvp@mydomain.com'
DEFAULT_FROM_USER = 'rsvp@mydomain.com'
EMAIL_HOST_PASSWORD = 'p4ssw0rd'