SQL Serverでは、データベースメールは、アカウントではなくプロファイルを使用して電子メールを送信します。
したがって、最初にプロファイルを作成し、次にアカウントを作成してから、そのアカウントをプロファイルに追加する必要があります。また、 msdbでユーザーを許可する必要があります プロファイルへのデータベースアクセス。
T-SQLを使用してデータベースメールアカウントをプロファイルに追加するには、sysmail_add_profileaccount_sp
を使用します msdbのストアドプロシージャ データベース。
例
T-SQLを使用してデータベースメールアカウントをデータベースメールプロファイルに追加する例を次に示します。
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin',
@sequence_number = 1;
この場合、アカウント「DBAdmin」をプロファイル「DBAdminProfile」に追加します。
これは、プロファイルとアカウントがすでに存在していることを前提としています。
データベースメールプロファイルに複数のアカウントを追加できます。シーケンス番号は、プロファイルでアカウントが使用される順序を決定します。データベースメールは、シーケンス番号が最も小さいアカウントから始まります。そのアカウントが失敗した場合、次に大きいシーケンス番号のアカウントが使用されます。
同じシーケンス番号のアカウントが複数存在する場合、Database Mailは、特定の電子メールメッセージに対してそれらのアカウントの1つのみを使用します。
ただし、同じアカウントが後続のメッセージに使用されるという保証はありません。たとえば、2つのアカウントがシーケンス番号1を共有している場合、一方のアカウントからいくつかのメールを受信し、もう一方のアカウントからいくつかのメールを受信する可能性があります。
アカウント/プロファイルIDを指定
または、名前の代わりにプロファイルIDやアカウントIDを指定することもできます。
したがって、前の例を次のように変更できます。
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_id = 1,
@account_id = 1,
@sequence_number = 1;
これは明らかに、それらが問題のアカウントのIDであることを前提としています。
名前またはIDのいずれかを指定する必要があることに注意してください。
また、IDを提供する場合、IDは intとして提供されます。 。
sysmail_add_profileaccount_sp
に注意してください ストアドプロシージャはmsdbにあります データベースであり、 dboが所有しています スキーマ。したがって、 msdb の外部から実行する場合は、3つの部分からなる命名を使用する必要があります。 データベース。