sysmail_add_account_sp (Transact-SQL)
创建一个新的数据库邮件帐户,用于保存有关 SMTP 帐户的信息。
适用范围:SQL Server(SQL Server 2008 到当前版本)。 |
语法
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 参数支持值 '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' ;