SQL Server 2016 DBメールが送信されない


17

私はSQL Server 2016を使用していますが、急いでいます... DBメールが送信されず、見る場所がなくなりました。DBmail実行可能ファイルに対するSQLアカウントの許可を再確認しました-読み取りと実行が完了しました。ファイアウォールのアウトバウンドポート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から接続を受け取りますか?質問には多くの関連情報が欠けています
Paolo

@kinいいえ、公開メールです。両方の電子メールはOffice 365であり、アカウントはSQL 2014で正常に送受信しています。状況を説明する第1段落の終わりにいくつかの詳細を追加しました。
デイブ

データベースメールプロファイルを意味します。
キンシャー

SQL Server 2016ボックスからSMTPサーバーにping / telnetできますか?はいの場合、mssqltips.com / sqlservertip / 1625 /…リンクからVBスクリプトを実行して、SMTPの問題を除外してみてください。テストメールを受信した場合は、SQLサーバーの問題であることを確認できます。
SQLPRODDBA

回答:


17

気まぐれに、権限をダブルチェックするとき、実際のDBメール実行可能ファイルをダブルクリックしました。SQL Server 2014マシンでの結果は、空のコマンドウィンドウでした。SQL Server 2016でDB Mail実行可能ファイルをクリックすると、次のメッセージが表示されました。

ここに画像の説明を入力してください

この要件は、SQL Server 2016のドキュメントには記載されていませんが、明らかに要件です。DBメールは、.NET 3.5をインストールする以外に変更を加えることなく完全に機能しています。


同じ問題がありました。.net 3.5を適用して解決しました。
サース・スアロット

これは私の問題も修正しました!それは私を狂気に駆り立てていましたが、NET3.5をインストールすると私の問題が修正されました!
NULL。デュード

これは2016年のSP1 CU8に私のために同じ問題を修正しました
ジェームズ・アンダーソン

DBメール実行可能ファイルはどこにありますか?
JzInqXc9Dg

@Dave OH JESSUSこれはすごい。ただ疑問に思う...これらのサーバーでLogMeInを使用していますか?LogMeInがアイテムをアンインストールまたは削除するという奇妙な状況に遭遇し、彼らはそれを認めることを拒否しました。ある時点で私のデータベースメールが1つのボックスで
正常に機能

10

Microsoftサポートによると、SQL Server 2016のセットアップにバグがあり、データベースメールが.net 3.5なしでは機能しなくなる

DatabaseMail.exeが存在するのと同じフォルダー(Binnフォルダー)にDatabaseMail.exe.configファイルを作成することで回避策があります。ファイルに以下を書き込み、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
[SQL Server 2016の累積更新2 |が既にあります| [FIX:SQL Server 2016データベースメールは、.NET Framework 3.5がインストールされていないコンピューターでは機能しません| support.microsoft.com/en-us/kb/3182270] support.microsoft.com/en-us/kb/3186435]
ヴラディスラフ

1
ここにたどり着く前に、30分だけこの問題を見ていた。時間を節約してくれてありがとう。
ポール

1

既に述べた原因に加えて、以下に示すように、SQL Serverエージェントレベルで電子メールプロファイルをアクティブにすることも重要です

  • [SQL Serverエージェント]を右クリックし、[プロパティ]を選択します
  • 左ペインでアラートシステムを選択します

  • チェックマーク>メールプロファイルを有効にする

  • メールシステムの確認:データベースメール
  • メールプロファイルの確認:SQLAlerts
  • チェックマーク>通知メッセージに電子メールの本文を含める
  • OKをクリックします。
  • エージェントを再起動します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.