sysmail_add_account_sp (Transact-SQL)
创建一个新的数据库邮件帐户,用于保存有关 SMTP 帐户的信息。
语法
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'
发件人的电子邮件地址。该地址必须是一个 Internet 电子邮件地址。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
指定数据库邮件是否使用安全套接字层对通信进行加密。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 代理的电子邮件地址。通过为上述三个参数提供独立的设置,数据库邮件允许您配置邮件来适应您的需求。
@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_sp 在 msdb 数据库中,由 dbo 架构拥有。如果当前数据库不是 msdb,则该过程必须使用由三部分组成的名称执行。
权限
默认情况下,sysadmin 固定服务器角色的成员有执行此过程的权限。
示例
以下示例将创建一个名为 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' ;