次の方法で共有


sysmail_add_account_sp (Transact-SQL)

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_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'
    アカウントの説明を指定します。description のデータ型は nvarchar(256) で、既定値は NULL です。

  • [ @mailserver_name = ] 'server_name'
    このアカウントで使用する SMTP メール サーバーの名前または IP アドレスを指定します。SQL Server を実行するコンピューターでは、この server_name を解決して IP アドレスを取得できるようにする必要があります。server_name のデータ型は sysname で、既定値はありません。

  • [ @mailserver_type = ] 'server_type'
    電子メール サーバーの種類を指定します。server_type のデータ型は sysname で、既定値は 'SMTP' です。

  • [ @port = ] port_number
    電子メール サーバーのポート番号を指定します。port_number のデータ型は 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 パラメーターは電子メール メッセージの [差出人] フィールドに表示される名前です。@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 パラメーターは将来のリリースでも柔軟に使用できるよう考慮して提供されています。SQL Server 2005 以降では、値 'SMTP'@mailserver_type に指定することがサポートされています。

@use_default_credentials が 1 の場合、メールは、SQL Server データベース エンジンの資格情報を使用して SMTP サーバーに送信されます。@use_default_credentials が 0 の場合、アカウントに @username@password を指定すると、そのアカウントでは SMTP 認証が使用されます。@username@password は、SMTP サーバーに対してアカウントが使用する資格情報であり、SQL Server や、コンピューターが所属するネットワークの資格情報ではありません。

ストアド プロシージャ sysmail_add_account_spmsdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。

権限

このプロシージャの実行権限は、既定では sysadmin 固定サーバー ロールのメンバーに与えられています。

次の例では、AdventureWorks2008R2 Administrator というアカウントを作成します。このアカウントでは電子メール アドレス dba@Adventure-Works.com を使用し、SMTP メール サーバー smtp.Adventure-Works.com にメールを送信します。このアカウントから送信された電子メール メッセージでは、メッセージの [差出人] 行に "AdventureWorks2008R2 Automated Mailer" と表示されます。メッセージへの返信は danw@Adventure-Works.com に転送されます。

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'AdventureWorks2008R2 Administrator',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'dba@Adventure-Works.com',
    @display_name = 'AdventureWorks2008R2 Automated Mailer',
    @mailserver_name = 'smtp.Adventure-Works.com' ;