Django邮件未被保存(文件后端)

8 python email django django-email django-settings

我已将Django配置为使用文件后端在本地计算机上发送电子邮件.这似乎在早期工作正常,所有邮件都记录在我在我的settings.py文件中指定的目录中:

EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/code/mails/'
Run Code Online (Sandbox Code Playgroud)

然而,这突然停止了工作.我已经检查了文件夹的权限,这似乎没问题.我没有看到任何错误.我正在使用docker,当我启动Python服务器时,我的终端显示了日志.通常当出现错误时我会在那里看到它.但没有出现.为了测试,我已重命名该文件夹并尝试发送邮件.这次,也没有出现错误.在制作中,我settings.py的不同但其他一切都是相同的,电子邮件发送得很好.所以代码似乎工作,但本地基于文件的后端似乎是一个问题.

有人有什么想法吗?

我已配置这些日志设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/code/logs/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

日志似乎工作正常并提供详细的日志记录; 但没有一个与电子邮件错误有关.

Pao*_*rre 3

正如您在代码中看到的,有很多提升: https://github.com/django/django/blob/stable/2.1.x/django/core/mail/backends/filebased.py#L13

因此,如果使用您的设置以及文件夹的正确权限,您看不到电子邮件或错误,则可能有一些设置会覆盖您在此处发布的两个设置。

再次检查您的本地设置并确保只声明了一个 EMAIL_BACKEND。