一、启用数据库邮件

手动启用数据库邮件功能,需执行以下脚本:

exec sp_configure 'show advanced options',1
RECONFIGURE

exec sp_configure 'Database Mail XPs',1
RECONFIGURE With Override


二、配置数据库邮件

1、启用配置向导

数据库邮件_SQL 邮件


数据库邮件_SQL 邮件_02


数据库邮件_SQL 邮件_03


如果事先没有手动启用数据库邮件功能,则会提示:

数据库邮件_SQL 邮件_04


2、新建数据库邮件帐户

数据库邮件_SQL 邮件_05


数据库邮件_SQL 邮件_06


数据库邮件_SQL 邮件_07


3、完成配置

数据库邮件_SQL 邮件_08


数据库邮件_SQL 邮件_09


数据库邮件_SQL 邮件_10



三、发送邮件

1、发送测试邮件

数据库邮件_SQL 邮件_11


数据库邮件_SQL 邮件_12


数据库邮件_SQL 邮件_13


2、收到的邮件

数据库邮件_SQL 邮件_14


3、使用T-SQL发送邮件

  详细语法见sp_send_dbmail (Transact-SQL),例如:

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1 ;


四、说明

1、数据库邮件用于从一个SQL Server实例发送邮件信息。

2、为了自动发送邮件信息,必须启用SQL Agent并处于运行状态。

3、一个邮件配置文件可以包含一个或多个邮件帐户。


五、配置文件

  配置文件可以为公共配置文件或专用配置文件。

  公共配置文件允许所有用户或角色访问邮件主机数据库 (msdb),以使用该配置文件发送电子邮件。

  只有特定用户或角色才能访问专用配置文件。

  配置文件可以是默认的配置文件。在这种情况下,用户或角色可以使用该配置文件发送电子邮件,而无需显式指定配置文件。如果发送电子邮件的用户或角色具有默认的专用配置文件,则数据库邮件将使用该配置文件。

数据库邮件_SQL 邮件_15


数据库邮件_SQL 邮件_16


  如果用户或角色没有默认的专用配置文件,则 sp_send_dbmail 将使用 msdb 数据库的默认公共配置文件。如果用户或角色没有默认的专用配置文件,且该数据库也没有默认的公共配置文件,则 sp_send_dbmail 将返回错误。


六、注意事项

1. 帐户权限

  若要发送数据库邮件,则还必须使用 Management Studio 或 sp_addrolemember 将“SQL Server 代理”服务的启动帐户添加到 msdb 数据库中的 DatabaseMailUsersRole 角色。

数据库邮件_SQL 邮件_17


2. 查看日志

数据库邮件_SQL 邮件_18

数据库邮件_SQL 邮件_19