Как заставить dbmail обрабатывать элементы из очереди для SQL Server 2005?

Когда я использую хранимую процедуру sp_send_dbmail, я получаю сообщение о том, что моя почта поставлена ​​в очередь. Однако, похоже, он так и не был доставлен. Я могу увидеть их в очереди, если запущу этот SQL:

SELECT * FROM msdb..sysmail_allitems WHERE sent_status = 'unsent'

Этот SQL возвращает 1:

SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'

Эта хранимая процедура возвращает STARTED:

msdb.dbo.sysmail_help_status_sp

Соответствующие учетные записи и профили были настроены, и почта работала в какой-то момент. В msdb.dbo.sysmail_event_log ошибок нет.

Ответов (3)

Решение

Может быть куча вещей. Например, я видел (да, действительно видел), что это происходило после:

  • Перезагрузка контроллера домена
  • Перезагрузка сервера Exchange
  • Выход из строя роутера
  • Изменения в сервисном аккаунте
  • SQL Server не хватает места на диске

Так что, пока это не повторится снова, я бы не волновался по этому поводу.

Ты пробовал

sysmail_stop_sp

тогда

sysmail_start_sp

У меня была такая же проблема, и вот как я смог ее решить.

Перейдите в Sql Agent >> Properties >> Alert System >> Установите флажок Enable для DBMail и добавьте профиль.

Перезагрузите агент, и с тех пор он работает.

Надеюсь, это поможет, _Ub