sp_send_dbmail
を使用する場合 SQL Serverで電子メールを送信するためのストアドプロシージャには、通常、@profile_name
を含めます。 使用するプロファイルを指定する引数。
ただし、この引数を省略すると、sp_send_dbmail
現在のユーザーのデフォルトのプライベートプロファイルを使用します。ユーザーがデフォルトのプライベートプロファイルを持っていない場合は、sp_send_dbmail
msdb
のデフォルトのパブリックプロファイルを使用します データベース。
これらのいずれも構成されていない場合、次のエラーが発生します:
Msg 14636, Level 16, State 1, Procedure msdb.dbo.sp_send_dbmail, Line 112 No global profile is configured. Specify a profile name in the @profile_name parameter.
このエラーが発生した場合は、基本的に3つのオプションがあります。
-
@profile_name
を含めて、使用するプロファイルを指定しますsp_send_dbmail
を呼び出すときの引数 手順。 - 現在のユーザーのデフォルトのプライベートプロファイルを作成します。
-
msdb
のパブリックプロファイルを作成します データベース。
この記事では、3番目のオプションの例を示します。msdb
のパブリックプロファイルを作成します データベース。
例
これは、データベースメールプロファイルを作成し、データベースメールアカウントを作成し、アカウントをプロファイルに追加してから、そのプロファイルへのパブリックアクセスを許可するプロセスを実行する例です。
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'DB Public Profile',
@description = 'Public Profile for emails.';
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_id = 1,
@account_name = 'DB Public',
@description = 'Public account for emails.',
@email_address = '[email protected]',
@replyto_address = '[email protected]',
@display_name = 'DB Public Mailer',
@mailserver_name = 'smtp.example',
@port = 587;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'DB Public Profile',
@account_name = 'DB Public',
@sequence_number = 1;
-- Grant the public principal access to the profile
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'DB Public Profile',
@principal_name = 'public',
@is_default = 1;
最後の行は、実際にはそれをデフォルトのパブリックプロファイルにする部分です。
@is_default = 1
を使用する 、このプロファイルをデフォルトのパブリックプロファイルに設定しています。 @is_default = 0
を使用した場合 代わりに、デフォルトのパブリックプロファイルではありません。
プロファイルを公開するには、@principal_id
を指定します 0
の または@principal_name
public
の 。公開プロファイルは、msdb
のすべてのユーザーが利用できます データベース(ただし、ユーザーはDatabaseMailUserRole
のメンバーでもある必要があります sp_send_dbmail
を実行します 。
デフォルトのパブリックプロファイルは1つだけであることに注意してください。
既存のプロファイルを更新する
すでに公開プロファイルを持っているが、それがデフォルトの公開プロファイルではない場合は、sysmail_update_principalprofile_sp
を使用できます。 それを変えるために。
例:
EXECUTE msdb.dbo.sysmail_update_principalprofile_sp
@profile_name = 'DB Public Profile',
@principal_name = 'public',
@is_default = 1;