次の方法で共有


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) で、既定値はありません。たとえば、Microsoft 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' です。Microsoft SQL Server 2005 でサポートされるサーバーの種類は '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 の場合、データベース メールでは、SQL Server データベース エンジンの資格情報が使用されます。このパラメータが 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 です。

解説

データベース メールでは、@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 では、@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_spmsdb データベースにあり、dbo スキーマが所有しています。現在のデータベースが msdb でない場合、このプロシージャを実行するときには名前に 3 つの要素を指定する必要があります。

権限

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

戻り値

0 (成功) または 1 (失敗)

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

EXECUTE 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' ;

参照

関連項目

データベース メールと SQL Mail のストアド プロシージャ (Transact-SQL)

その他の技術情報

データベース メール
データベース メール アカウント
[構成タスクの選択] (データベース メール)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手