次の方法で共有


データベース メールのアーキテクチャ

データベース メールは次に示す主要なコンポーネントで構成されています。

  • 構成およびセキュリティ関連コンポーネント

    データベース メールは、msdb データベースに構成情報とセキュリティ情報を格納します。構成オブジェクトおよびセキュリティ オブジェクトは、データベース メールで使用されるプロファイルおよびアカウントを作成します。

  • メッセージング関連コンポーネント

    msdb データベースは、データベース メールでの電子メール送信に使用されるメッセージング オブジェクトを保持するメール ホスト データベースとして機能します。これらのオブジェクトには、sp_send_dbmail ストアド プロシージャと、メッセージに関する情報を格納するデータ構造が含まれています。

  • データベース メール実行可能ファイル

    データベース メール実行可能ファイルは、msdb データベース内のキューからメッセージを読み取り、電子メール サーバーにメッセージを送信する外部プログラムです。

  • ログおよび監査関連コンポーネント

    データベース メールは、msdb データベースおよび Microsoft Windows アプリケーション イベント ログにログ情報を記録します。

データベース メールは、アーキテクチャを完全に理解しなくても、効果的に使用できます。ただし、データベース メールを構成しているコンポーネントとそれらのコンポーネントの持つ影響を理解しておくと、アプリケーションのデザインや発生する可能性がある問題のトラブルシューティングに役立つ場合があります。

次の図は、データベース メールのアーキテクチャの概要を表しています。

msdb から SMTP メール サーバーへのメッセージ送信

データベース メールは、Service Broker テクノロジを使用するキュー アーキテクチャを基に設計されています。ユーザーが sp_send_dbmail を実行すると、アイテムがメール キューに挿入され、電子メール メッセージを格納したレコードが作成されます。メール キューに新しいエントリが挿入されると、データベース メールの外部プロセス (DatabaseMail.exe) が起動します。外部プロセスは、電子メール情報を読み取り、電子メール メッセージを適切な電子メール サーバーに送信します。また、送信操作の結果の状態キューにアイテムを挿入します。状態キューに新しいエントリが挿入されると、電子メール メッセージの状態を更新する内部ストアド プロシージャが起動します。データベース メールは、システム テーブルに送信済み (または未送信) の電子メール メッセージを格納するだけでなく、電子メールの添付ファイルも記録します。データベース メール ビューには、トラブルシューティングのためにメッセージの状態が表示されます。また、ストアド プロシージャにより、データベース メール キューの管理が可能になります。

sp_send_dbmail を実行できるのは、msdb データベース内の DatabaseMailUserRole のメンバのみです。