我什至不知道如何调试它:我在Django的其中一个 View 中使用send_mail。在本地使用应用程序时,它工作正常(使用我在生产环境中使用的相同SMTP设置),在生产环境中的 shell 中工作正常(再次使用相同的设置)。但是当我在生产环境中实际使用该应用程序时,该消息不会发送。任何想法如何解决?

我不会在整个 View 中粘贴,但这是相关的部分。

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, '[email protected]', ['[email protected]', invitation.user.email], fail_silently=True)

这是我的local_settings文件中的相关位,为安全起见,更改了重要的详细信息:
EMAIL_HOST = 'mail.mydomain.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '[email protected]'
DEFAULT_FROM_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'p4ssw0rd'

最佳答案

检查权限。可能是您具有运行send_mail的权限,但该应用程序却没有权限。

09-12 11:49