Подтвердить что ты не робот

Сообщение об ошибке электронной почты Django не отправляется

Я борюсь с сообщениями электронной почты с ошибками django (1.5.1), которые не отправляются.

вот мои настройки conf для использования с gmail

DEFAULT_FROM_EMAIL = '[email protected]'

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'passs'
EMAIL_USE_TLS = True

SERVER_EMAIL = '[email protected]'

ADMINS = (
    ('Adam Min', '[email protected]'),
)

Если я добавлю MANAGERS = ADMINS, тогда я получаю письма для 404 но без установки MANAGERS я ничего не получаю.

Я создал багги-url, чтобы проверить это.

Также я нашел эту похожую Q Django по электронной почте об ошибках, но это мне не помогло.

EDIT: также в config у меня есть DEBUG = False и этот

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s [%(asctime)s] %(module)s %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'filters': {
        'require_debug_false': {
                 '()': 'django.utils.log.RequireDebugFalse',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'verbose',
            'filename': '/var/www/logs/ibiddjango.log',
            'maxBytes': 1024000,
            'backupCount': 3,
        },
        'sql': {
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'verbose',
            'filename': '/var/www/logs/sql.log',
            'maxBytes': 102400,
            'backupCount': 3,
        },
        'commands': {
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'verbose',
            'filename': '/var/www/logs/commands.log',
            'maxBytes': 10240,
            'backupCount': 3,
        },
        'mail_admins': {
             'level': 'ERROR',
             'filters': ['require_debug_false'],
             'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'propagate': True,
            'level': 'DEBUG',
        },
        'django.db.backends': {
            'handlers': ['sql', 'console'],
            'propagate': False,
            'level': 'WARNING',
        },
        'scheduling': {
            'handlers': ['commands', 'console'],
            'propagate': True,
            'level': 'DEBUG',
        },
    }
}

Что мне не хватает?

4b9b3361

Ответ 1

кажется, что ваша проблема заключается в вашей конфигурации ведения журнала: в settings.py LOGGING:

 'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    },
 }

Эта конфигурация указывает, что обработчик mail_admins работает только в DEBUG = False, потому что используется фильтр. Если вы попробуете режим debug false или вы можете активировать этот обработчик в режиме отладки, просто прокомментируйте фильтры:

 'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        #'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    },
 }

Edit:

Ваша конфигурация не вызывает обработчик mail_admins. Добавьте его в регистратор django следующим образом:

'loggers': {
    'django': {
        'handlers': ['file', 'console', 'mail_admins',],
        'propagate': True,
        'level': 'DEBUG',
    },