sysmail_add_account_sp (Transact-SQL)

適用対象: SQL ServerAzure 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_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 を実行するコンピューターは、@mailserver_nameIP アドレスに解決できる必要があります。 @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はビットで、既定値は 0. このパラメーターの場合、1データベース メールはデータベース エンジンの資格情報を使用します。 このパラメーターが指定されている場合、0データベース メールは@usernameパラメーターと@password パラメーターを送信し、それ以外の場合は@usernameおよび@passwordパラメーターなしでメールを送信します。

[ @enable_ssl = ] enable_ssl

データベース メールで Secure Sockets Layer を使用して通信を暗号化するかどうかを指定します。 @enable_sslはビットで、既定値は 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@username 0@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';