Пошта DB SQL Server 2016 не надсилається


17

Я на SQL Server 2016 і маю вибух ... моя пошта DB не надсилається, і у мене не вистачає місця для пошуку. Я двічі перевірив дозволи дозволу облікового запису SQL до виконуваного файлу DBmail - він прочитав та виконав. Я ввів правило для вихідного порту брандмауера 587. Я спробував інший поштовий обліковий запис та профіль із тими ж невиправленими проблемами. Єдині записи в журналах (журнали db пошти) - це початок та закінчення служби. Ніде помилок, які я можу знайти. Здається, що електронні листи просто входять у чергу надсилання та ніколи не залишають її. Облікові записи можуть надсилати та отримувати електронну пошту самостійно та з екземпляра SQL Server 2014 на іншій машині.

У мене черга предметів із надісланим статусом "непідписана" та перевірена всі нормальні місця з очікуваними результатами у всіх, окрім довгої черги невідправленої пошти:

SELECT * FROM msdb..sysmail_event_log order by log_id DESC

SELECT * FROM dbo.sysmail_mailitems

SELECT * FROM dbo.sysmail_sentitems

USE msdb
SELECT sent_status, *
FROM sysmail_allitems

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

 EXECUTE msdb.dbo.sysmail_help_status_sp

Я спробував вимкнути його і знову ... так що я пропустив DMV тощо, який міг би пролити світло на цю ситуацію? Це відома проблема із SQL Server 2016, яку я не проводив у своїх пошуках? Будь-які інші можливі дії для відправлення цього листа?


Чи приватний профіль, з якого ви надсилаєте електронний лист?
Кін Шах

Будь-яка помилка? А що з колодами? А поштовий сервер? Чи отримує поштовий сервер яке-небудь з'єднання від sql? У питанні бракує багато відповідної інформації ...
Паоло,

@kin Ні, це публічна електронна пошта. Обидва електронні листи є офісом 365, а облікові записи надсилають та отримують штрафи від SQL 2014. До кінця 1-го абзацу, що описує ситуацію, додано ще кілька деталей.
Дейв

Я мав на увазі поштовий профіль вашої бази даних.
Кін Шах

Чи можете ви пінг / telnet SMTP-сервер з вашого скриньки SQL Server 2016? Якщо так, чи можете ви спробувати запустити сценарій VB із посилання mssqltips.com/sqlservertip/1625/…, щоб виключити будь-яку проблему SMTP. Якщо ви отримаєте тестову пошту, то можете бути впевнені, що це проблема з SQL-сервером.
SQLPRODDBA

Відповіді:


17

За примхою, при подвійній перевірці дозволів, я двічі клацнув фактичним виконуваним файлом пошти БД. Результатом на машині SQL Server 2014 було порожнє командне вікно. На SQL Server 2016, натиснувши виконуваний файл пошти DB, було представлено це повідомлення:

введіть тут опис зображення

Я не можу знайти цю вимогу ніде в документації на SQL Server 2016, але явно це вимога. DB Mail прекрасно функціонує, не маючи інших змін, крім встановлення .NET 3.5.


У мене було те саме питання. Вирішено шляхом застосування .net 3.5.
Сер клянеться-лот

це вирішило і мою проблему! це зводило мене з розуму, але встановлення NET3.5 виправило мою проблему!
NULL.Dude

Це вирішило те саме питання для мене в SP1 CU8 2016 року
Джеймс Андерсон

де розташований виконуваний файл пошти БД?
JzInqXc9Dg

@Dave OH Ісусе це дивно. Цікаво ... Ви використовуєте LogMeIn на цих серверах? Ми стикалися з химерними ситуаціями, коли LogMeIn видаляє або видаляє речі, і вони відмовляються це визнати. Моя пошта з бази даних в один момент спрацювала чудово на одній коробці і, безумовно, перестала працювати десь у той час, коли ми перейшли до LogMeIn
Джон Заброскі,

10

Згідно з підтримкою Microsoft, у програмі установки SQL-сервера 2016 є помилка, через яку пошта бази даних не працює без .net 3.5

Існує проблема, створивши файл DatabaseMail.exe.config у тій самій папці, де існує DatabaseMail.exe (папка Binn), запишіть у файл наступне і збережіть за допомогою кодування utf-8

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true"> 
<supportedRuntime version="v4.0"/>     
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

Джерело: FIX: Пошта з бази даних SQL Server 2016 не працює на комп'ютері, на якому не встановлено .NET Framework 3.5


4

Загляньте замість цього. Таким чином потрібно лише скопіювати файл, а не встановлювати .net 3.5. Потрібно спочатку встановити CU1. Ознайомтесь тут для отримання більш детальної інформації.


2
Уже є [накопичувальне оновлення 2 для SQL Server 2016 | support.microsoft.com/en-us/kb/3182270] з програмою [FIX: SQL Server 2016 Mail Mail не працює на комп'ютері, на якому не встановлено .NET Framework 3.5 | support.microsoft.com/en-us/kb/3186435] .
Владислав

1
На цю проблему витратив лише 30 хвилин, перш ніж закінчитися тут. Дякую, що заощадили мені набагато більше часу.
Пол

1

Крім уже згаданих причин, важливо також активувати профіль електронної пошти на рівні агента SQL Server, як зазначено тут :

  • Клацніть правою кнопкою миші Агент SQL Server> виберіть Властивості
  • Виберіть Система сповіщень на лівій панелі

  • Відмітка> Увімкнути профіль пошти

  • Перевірка поштової системи: База даних пошти
  • Перевірте профіль пошти: SQLAlerts
  • Галочка> Включити в повідомлення повідомлення тіло електронної пошти
  • Натисніть кнопку ОК.
  • Перезавантажте агент.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.