sysmail_add_account_sp (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
SMTP アカウントに関する情報を保持する新しいデータベース メール アカウントを作成します。
構文
sysmail_add_account_sp [ @account_name = ] 'account_name' ,
[ @email_address = ] 'email_address' ,
[ [ @display_name = ] 'display_name' , ]
[ [ @replyto_address = ] 'replyto_address' , ]
[ [ @description = ] 'description' , ]
[ @mailserver_name = ] 'server_name'
[ , [ @mailserver_type = ] 'server_type' ]
[ , [ @port = ] port_number ]
[ , [ @username = ] 'username' ]
[ , [ @password = ] 'password' ]
[ , [ @use_default_credentials = ] use_default_credentials ]
[ , [ @enable_ssl = ] enable_ssl ]
[ , [ @account_id = ] account_id OUTPUT ]
[ ; ]
引数
[ @account_name = ] 'account_name'
追加するアカウントの名前を指定します。 @account_name は sysname で、既定値はありません。
[ @email_address = ] 'email_address'
メッセージの送信先の電子メール アドレス。 このアドレスは、インターネットの電子メール アドレスである必要があります。 @email_address は nvarchar(128)で、既定値はありません。 たとえば、SQL Server エージェントのアカウントがアドレス SqlAgent@adventure-works.com
から電子メールを送信する場合があります。
[ @display_name = ] 'display_name'
このアカウントからの電子メール メッセージで使用する表示名。 @display_name は nvarchar(128) で、既定値は NULL
です。 たとえば、SQL Server エージェントのアカウントには、電子メール メッセージにSQL Server Agent Automated Mailer
名前が表示される場合があります。
[ @replyto_address = ] 'replyto_address'
このアカウントから送信するメッセージに対する返信アドレスを指定します。 @replyto_address は nvarchar(128) で、既定値は NULL
です。 たとえば、SQL Server エージェントのアカウントへの返信は、データベース管理者 (danw@adventure-works.com
) に送信される場合があります。
[ @description = ] '説明'
アカウントの説明。 @description は nvarchar(256) で、既定値は NULL
です。
[ @mailserver_name = ] 'server_name'
このアカウントで使用する SMTP メール サーバーの名前または IP アドレスを指定します。 SQL Server を実行するコンピューターは、 @mailserver_name を IP アドレスに解決できる必要があります。 @mailserver_name は sysname で、既定値はありません。
[ @mailserver_type = ] 'server_type'
電子メール サーバーの種類。 @mailserver_type は sysname で、既定値は SMTP
です。
[ @port = ] port_number
電子メール サーバーのポート番号。 @port は int で、既定値は 25
です。
[ @username = ] 'username'
電子メール サーバーへのログオンに使用するユーザー名。 @username は nvarchar(128) で、既定値は NULL
です。 このパラメーターがNULL
されている場合、データベース メールはこのアカウントの認証を使用しません。 メール サーバーで認証が必要ない場合は、ユーザー名に NULL
を使用します。
[ @password = ] 'password'
子メール サーバーへのログオンに使用するパスワードを指定します。 @password は nvarchar(128) で、既定値は NULL
です。 ユーザー名が指定されていない限り、パスワードを指定する必要はありません。
[ @use_default_credentials = ] use_default_credentials
SQL Server データベース エンジンの資格情報を使用して SMTP サーバーにメールを送信するかどうかを指定します。 @use_default_credentials は bit で、既定値は 0
です。 このパラメーターを1
すると、データベース メールはデータベース エンジンの資格情報を使用します。 このパラメーターが0
されると、データベース メールは@usernameパラメーターと@password パラメーターが存在する場合は送信し、それ以外の場合は@usernameおよび@passwordパラメーターなしでメールを送信します。
[ @enable_ssl = ] enable_ssl
データベース メールで Secure Sockets Layer を使用して通信を暗号化するかどうかを指定します。 @enable_ssl は bit で、既定値は 0
です。
[ @account_id = ] account_id OUTPUT
新しいアカウントのアカウント ID を返します。 @account_id は int で、既定値は NULL
です。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
データベース メールは、@email_address、@display_name、および@replyto_addressに個別のパラメーターを提供します。 @email_address パラメーターは、メッセージの送信先アドレスです。 @display_name パラメーターは、電子メール メッセージの From:
フィールドに表示される名前です。 @replyto_address パラメーターは、電子メール メッセージへの返信が送信されるアドレスです。 たとえば、SQL Server エージェントに使用するアカウントは、SQL Server エージェントにのみ使用される電子メール アドレスから電子メール メッセージを送信する場合があります。 そのアドレスからのメッセージにはフレンドリ名が表示されるため、受信者はメッセージを送信SQL Server エージェント簡単に判断できます。 受信者がメッセージに返信した場合、返信は、SQL Server エージェントで使用されるアドレスではなく、データベース管理者に送信されます。 このシナリオでは、アカウントは電子メール アドレスとして SqlAgent@adventure-works.com
を使用します。 表示名は SQL Server Agent Automated Mailer
に設定されます。 アカウントはアドレスへの返信としてdanw@adventure-works.com
を使用するため、このアカウントから送信されたメッセージへの返信は、SQL Server エージェントの電子メール アドレスではなくデータベース管理者に送信されます。 これら 3 つのパラメーターに個別の設定を指定することで、データベース メールでは、ニーズに合わせてメッセージを構成できます。
@mailserver_type パラメーターは、値SMTP
をサポートします。
@use_default_credentialsが1
されると、SQL Server データベース エンジンの資格情報を使用して SMTP サーバーにメールが送信されます。 @use_default_credentialsが0
され、アカウントに@usernameと@passwordが指定されている場合、アカウントは SMTP 認証を使用します。 @usernameと@passwordは、アカウントが SMTP サーバーに使用する資格情報であり、SQL Server またはコンピューターが存在するネットワークの資格情報ではありません。
ストアド プロシージャ sysmail_add_account_sp
は msdb
データベースにあり、 dbo
スキーマによって所有されています。 現在のデータベースが msdb
されていない場合は、プロシージャを 3 部構成の名前で実行する必要があります。
アクセス許可
このストアド プロシージャは、 db_owner ロールによって所有されています。 EXECUTE
アクセス許可は任意のユーザーに付与できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
例
次の例では、 AdventureWorks Administrator
という名前のアカウントを作成します。 アカウントは電子メール アドレス dba@adventure-works.com
を使用し、SMTP メール サーバー smtp.adventure-works.com
にメールを送信します。 このアカウントから送信された電子メール メッセージは、メッセージのFrom:
行にAdventureWorks Automated Mailer
を表示します。 メッセージへの返信は danw@adventure-works.com
に転送されます。
EXEC msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Administrator',
@description = 'Mail account for administrative e-mail.',
@email_address = 'dba@adventure-works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.adventure-works.com';