SQL Serverのデータベースメールを使用してメールを送信しようとしても送信に失敗した場合は、sysmail_event_log
を確認できます。 失敗した理由を確認してください。
sysmail_event_log
viewは、データベースメールシステムから返されるWindowsまたはSQLServerメッセージごとに1行を返します。 「メッセージ」とは、実際のメールメッセージを意味するものではありません。メールが失敗した理由を説明するエラーメッセージなどのメッセージを意味します。
sysmail_configure_sp
を使用することもできます ログに記録されるメッセージのタイプを判別するためのストアドプロシージャ。
例
sysmail_event_log
の使用方法を示す例を次に示します。 すべてのメッセージを返します。
SELECT * FROM msdb.dbo.sysmail_event_log;
私のシステムでは、これはここに表示するには多すぎるデータを返しますが、ここでも、返された1つのメッセージを表示します。
SELECT *
FROM msdb.dbo.sysmail_event_log
WHERE log_id = 2;
結果(垂直出力を使用):
log_id | 2 event_type | error log_date | 2020-08-24 02:40:53.317 description | The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2020-08-24T02:40:52). Exception Message: Could not connect to mail server. (No connection could be made because the target machine actively refused it 127.0.0.1:25).) process_id | 68 mailitem_id | 1 account_id | NULL last_mod_date | 2020-08-24 02:40:53.317 last_mod_user | sa
この例では、横にスクロールする必要がないように垂直出力を使用しました。
ログレベルを確認する
sysmail_help_configure_sp
を使用できます ログに記録されるメッセージのタイプを確認するためのストアドプロシージャ。
例:
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
結果:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 2 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+
私の場合、LoggingLevel
2
です 、これはデフォルト値です。この設定は、エラー、警告、および情報メッセージをログに記録します。
ログレベルの変更
sysmail_configure_sp
を使用できます ロギングレベルを変更するためのストアドプロシージャ。
具体的には、LoggingLevel
を選択できます 1
の 、2
、または3
。
これらは以下をログに記録します:
- エラーのみ。
- エラー、警告、および情報メッセージ(デフォルト)。
- エラー、警告、情報メッセージ、成功メッセージ、および追加の内部メッセージ。
問題のトラブルシューティングを行っている場合は、ログレベルを一時的に3に変更することをお勧めします。
ロギングレベルを3
に変更する例を次に示します。 。
EXECUTE msdb.dbo.sysmail_configure_sp
'LoggingLevel', '3';
それを実行した後、LoggingLevel
を確認できます もう一度sysmail_help_configure_sp
を使用します ストアドプロシージャ。
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
結果:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 3 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+