sysmail_update_account_sp (Transact-SQL)

适用于SQL Server

更改现有数据库邮件帐户中的信息。

Transact-SQL 语法约定

语法

sysmail_update_account_sp [ [ @account_id = ] account_id ] [ , ] [ [ @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
    , [ @timeout = ] 'timeout'
    , [ @username = ] 'username'
    , [ @password = ] 'password'
    , [ @use_default_credentials = ] use_default_credentials
    , [ @enable_ssl = ] enable_ssl
[ ; ]

参数

[ @account_id = ] account_id

要更新的帐户 ID。 @account_id为 int,默认值为 NULL. 必须至少指定一个 @account_id@account_name 。 如果两个都指定,则过程将更改帐户的名称。

[ @account_name = ] 'account_name'

要更新的帐户名。 @account_name为 sysname,默认值为 NULL. 必须至少指定一个 @account_id@account_name 。 如果两个都指定,则过程将更改帐户的名称。

[ @email_address = ] 'email_address'

发件人的新电子邮件地址。 该地址必须是 Internet 电子邮件地址。 该地址中的服务器名称就是数据库邮件用于从该帐户发送邮件的服务器。 @email_address为 nvarchar(128),默认值为 NULL.

[ @display_name = ] 'display_name'

从该帐户发出的电子邮件中使用的新显示名称。 @display_name为 nvarchar(128),没有默认值。

[ @replyto_address = ] 'replyto_address'

从该帐户发出的电子邮件的答复标题中使用的新地址。 @replyto_address为 nvarchar(128),没有默认值。

[ @description = ] 'description'

对帐户的新说明。 @description为 nvarchar(256),默认值为 NULL.

[ @mailserver_name = ] 'server_name'

该帐户要使用的 SMTP 邮件服务器的新名称。 运行 SQL Server 的计算机必须能够将 @mailserver_name 解析为 IP 地址。 @mailserver_name为 sysname,无默认值。

[ @mailserver_type = ] 'server_type'

邮件服务器的新类型。 @mailserver_type为 sysname,无默认值。 仅支持一个值 SMTP

[ @port = ] port_number

邮件服务器的新端口号。 @portint,无默认值。

[ @timeout = ] 'timeout'

单个电子邮件的超时参数 SmtpClient.Send@timeout以秒为单位,没有默认值。

[ @username = ] 'username'

登录到邮件服务器时使用的新用户名。 @username为 sysname,无默认值。

[ @password = ] 'password'

登录到邮件服务器时使用的新密码。 @password为 sysname,无默认值。

[ @use_default_credentials = ] use_default_credentials

指定是否使用 SQL Server 数据库引擎 服务的凭据将邮件发送到 SMTP 服务器。 @use_default_credentials为,无默认值。 当此参数为 1 时,数据库邮件使用数据库引擎的凭据。 当此参数为 0 时,数据库邮件使用@username并在 SMTP 服务器上@password进行身份验证。 如果@username@passwordNULL,则使用匿名身份验证。 在指定此参数之前,请洽询您的 SMTP 管理员

[ @enable_ssl = ] enable_ssl

指定数据库邮件是否使用传输层安全性(TLS)加密通信,以前称为安全套接字层(SSL)。 如果 SMTP 服务器上需要 TLS,请使用此选项。 @enable_ssl,无默认值。

返回代码值

0(成功)或 1(失败)。

注解

当同时指定帐户名和帐户 ID 时,存储过程除了更新帐户的信息外,还会更改帐户名称。 更改帐户名称有助于更正帐户名称中的错误。

存储过程 sysmail_update_account_sp 位于 msdb 数据库中,由 dbo 架构拥有。 如果当前数据库不是 msdb,则必须使用三部分名称执行该过程。

权限

此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 EXECUTE 权限,但这些权限可能会在 SQL Server 升级期间被重写。

示例

A. 更改帐户的信息

以下示例更新数据库中的msdb帐户AdventureWorks Administrator。 此帐户的信息被设置为提供的值。

EXEC msdb.dbo.sysmail_update_account_sp
    @account_name = 'AdventureWorks Administrator',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'dba@adventure-works.com',
    @display_name = 'AdventureWorks Automated Mailer',
    @replyto_address = NULL,
    @mailserver_name = 'smtp.adventure-works.com',
    @mailserver_type = 'SMTP',
    @port = 25,
    @timeout = 60,
    @username = NULL,
    @password = NULL,
    @use_default_credentials = 0,
    @enable_ssl = 0;

B. 更改帐户的名称和帐户的信息

以下示例更改名称和更新帐户 ID 125的帐户信息。 此帐户的新名称为 Backup Mail Server

EXEC msdb.dbo.sysmail_update_account_sp
    @account_id = 125,
    @account_name = 'Backup Mail Server',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'dba@adventure-works.com',
    @display_name = 'AdventureWorks Automated Mailer',
    @replyto_address = NULL,
    @mailserver_name = 'smtp-backup.adventure-works.com',
    @mailserver_type = 'SMTP',
    @port = 25,
    @timeout = 60,
    @username = NULL,
    @password = NULL,
    @use_default_credentials = 0,
    @enable_ssl = 0;