sysmail_add_account_sp (Transact-SQL)

创建一个新的数据库邮件帐户,用于保存有关 SMTP 帐户的信息。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

主题链接图标 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'
    发件人的电子邮件地址。 该地址必须是 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_spmsdb 数据库中,由 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' ;

请参阅

参考

数据库邮件存储过程 (Transact-SQL)

概念

数据库邮件

创建数据库邮件帐户