Проблемы с отправкой уведомлений по электронной почте из SQL Server 2008 - PullRequest
26 голосов
/ 04 октября 2010

У меня проблема с настройкой уведомлений по электронной почте в SQL Server 2008.

Я использую SQL Server 2008 для построения куба данных. Этот процесс состоит из нескольких заданий, которые запланированы на выполнение каждую ночь в определенное время. Чтобы проверить, выполнялось ли задание без сбоев, можно настроить уведомление по электронной почте.

http://new.smilinginthesun.de/stackoverflow/01emailOperator.png http://new.smilinginthesun.de/stackoverflow/02emailNotification.png

К сожалению, письмо не отправляется, хотя я думаю, что правильно настроил почту базы данных.

Все руководства, которые я могу найти, просто объясняют, как настроить почту базы данных (например, http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/),, но это так.
Если я отправил письмо для проверки работоспособности (с помощью кнопки тестовой электронной почты или из сценария T-SQL), то все работает нормально, и письмо приходит Но при использовании функции уведомления в работе она даже не создает запись sysmail_mailitems или sysmail_log.
Я также успешно отправил электронное письмо, используя sp_notify_operator. Так что настройка оператора, похоже, тоже работает. (Спасибо, Джо Стефанелли, за подсказку.)

Существует отличный обходной путь, написанный для SQL Server 2005, который также работает для меня: http://www.howtogeek.com/howto/database/sending-automated-job-email-notifications-in-sql-server-with-smtp/, но почему нельзя просто использовать эту встроенную функциональность?

Кто-нибудь знает, нужно ли делать что-то еще, чтобы эта задача уведомления по электронной почте работала правильно? Спасибо за совет.

Ответы [ 4 ]

56 голосов
/ 07 октября 2011

Я опоздал, но я видел, что у вашего сообщения такая же проблема.

Решение состоит в том, чтобы включить почтовый профиль для оповещений.

Для этого:

  1. Щелкните правой кнопкой мыши «Агент SQL Server»
  2. Тогда "Свойства".
  3. Затем перейдите в раздел «Система оповещения».
  4. Установите флажок «Включить почтовый профиль».
  5. Тогда "ОК".
  6. Перезапустите службу агента SQL Server.
12 голосов
/ 18 октября 2010

Чтобы отправлять уведомления по электронной почте из заданий агента в агенте SQL Server, система сигнализации должна быть активирована.Мы сделали это.После перезапуска агента следует использовать систему Database Mail.К сожалению, это не работает.Агент все еще пытался получить доступ к профилю Mapi (как в SQL 2000).

Не задано следующее значение реестра: "UseDatabaseMail"=dword:00000001
После установки значения 1 использовалась почтовая система базы данных.
Это можно сделать непосредственно на сервере SQL:1007 *

EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'UseDatabaseMail', N'REG_DWORD', 1
3 голосов
/ 01 августа 2012

я пробовал что такое ZeuG. указал и до сих пор не удалось ... затем я перезапустил агент SQL. Это то, что заставило работать уведомление по электронной почте для меня.

1 голос
/ 20 сентября 2016

Для меня электронная почта SQL работала нормально, когда я щелкнул правой кнопкой мыши Database Mail и сказал «Отправить тестовое письмо». Однако после настройки оповещений для всех уровней серьезности и запуска RAISERROR (N'Test alert!', 20, 1) WITH LOG; электронное письмо не пришло. Проблема заключается в учетной записи службы , под которой работает агент SQL Server. По-видимому, виртуальная учетная запись NT Service\SQLSERVERAGENT (или любой другой тип по умолчанию) не имеет разрешений для доступа к объектам сеть, и это включает в себя электронную почту.

Чтобы исправить, измените службу на использование локальной учетной записи в группе «Пользователи», перезапустите агент SQL Server и попробуйте запустить команду, которая выдает ошибку, подобную приведенной выше инструкции RAISERROR. Теперь вы должны получить электронное письмо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...