web-dev-qa-db-ja.com

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

私は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の既知の問題で、検索には含まれていませんか?このメールを送信するための他の可能な手順はありますか?

17
Dave

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

enter image description here

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

17
Dave

マイクロソフトサポートによると、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 Database Mailは、.NET Framework 3.5がインストールされていないコンピューターでは機能しません

10
jalsh

代わりにこれを見てください。この方法では、.net 3.5をインストールする代わりに、ファイルをコピーするだけで済みます。最初にCU1をインストールする必要があります。詳細は here を確認してください。

4
Yhagger

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

  • SQL Serverエージェントを右クリックし、[プロパティ]を選択します。
  • 左側のペインで[Alert System]を選択します

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

  • メールシステムの確認:データベースメール
  • メールプロファイルの確認:SQLAlerts
  • チェックマーク>通知メッセージに電子メールの本文を含める
  • OKをクリックします。
  • エージェントを再起動します。
1
Alexei