次の方法で共有


sysmail_add_account_sp (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

SMTP アカウントに関する情報を保持する新しいデータベース メール アカウントを作成します。

Transact-SQL 構文表記規則

構文

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_namesysname で、既定値はありません。

[ @email_address = ] 'email_address'

メッセージの送信先の電子メール アドレス。 このアドレスは、インターネットの電子メール アドレスである必要があります。 @email_addressnvarchar(128)で、既定値はありません。 たとえば、SQL Server エージェントのアカウントがアドレス SqlAgent@adventure-works.comから電子メールを送信する場合があります。

[ @display_name = ] 'display_name'

このアカウントからの電子メール メッセージで使用する表示名。 @display_namenvarchar(128) で、既定値は NULL です。 たとえば、SQL Server エージェントのアカウントには、電子メール メッセージにSQL Server Agent Automated Mailer名前が表示される場合があります。

[ @replyto_address = ] 'replyto_address'

このアカウントから送信するメッセージに対する返信アドレスを指定します。 @replyto_addressnvarchar(128) で、既定値は NULL です。 たとえば、SQL Server エージェントのアカウントへの返信は、データベース管理者 (danw@adventure-works.com) に送信される場合があります。

[ @description = ] '説明'

アカウントの説明。 @descriptionnvarchar(256) で、既定値は NULL です。

[ @mailserver_name = ] 'server_name'

このアカウントで使用する SMTP メール サーバーの名前または IP アドレスを指定します。 SQL Server を実行するコンピューターは、 @mailserver_name を IP アドレスに解決できる必要があります。 @mailserver_namesysname で、既定値はありません。

[ @mailserver_type = ] 'server_type'

電子メール サーバーの種類。 @mailserver_typesysname で、既定値は SMTP です。

[ @port = ] port_number

電子メール サーバーのポート番号。 @portint で、既定値は 25 です。

[ @username = ] 'username'

電子メール サーバーへのログオンに使用するユーザー名。 @usernamenvarchar(128) で、既定値は NULL です。 このパラメーターがNULLされている場合、データベース メールはこのアカウントの認証を使用しません。 メール サーバーで認証が必要ない場合は、ユーザー名に NULL を使用します。

[ @password = ] 'password'

子メール サーバーへのログオンに使用するパスワードを指定します。 @passwordnvarchar(128) で、既定値は NULL です。 ユーザー名が指定されていない限り、パスワードを指定する必要はありません。

[ @use_default_credentials = ] use_default_credentials

SQL Server データベース エンジンの資格情報を使用して SMTP サーバーにメールを送信するかどうかを指定します。 @use_default_credentialsbit で、既定値は 0 です。 このパラメーターを1すると、データベース メールはデータベース エンジンの資格情報を使用します。 このパラメーターが0されると、データベース メールは@usernameパラメーターと@password パラメーターが存在する場合は送信し、それ以外の場合は@usernameおよび@passwordパラメーターなしでメールを送信します。

[ @enable_ssl = ] enable_ssl

データベース メールで Secure Sockets Layer を使用して通信を暗号化するかどうかを指定します。 @enable_sslbit で、既定値は 0 です。

[ @account_id = ] account_id OUTPUT

新しいアカウントのアカウント ID を返します。 @account_idint で、既定値は 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_credentials1されると、SQL Server データベース エンジンの資格情報を使用して SMTP サーバーにメールが送信されます。 @use_default_credentials0され、アカウントに@username@passwordが指定されている場合、アカウントは SMTP 認証を使用します。 @username@passwordは、アカウントが SMTP サーバーに使用する資格情報であり、SQL Server またはコンピューターが存在するネットワークの資格情報ではありません。

ストアド プロシージャ sysmail_add_account_spmsdb データベースにあり、 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';