SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

原文来自:https://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/  August 23, 2008 by pinaldave

今天这篇文章我们来讨论database mail,也就是用SQL server发邮件的问题。关于SQL Server中database mail和SQLMail的区别请参考SQL SERVER – Difference Between Database Mail and SQLMail . Database Mail代替了SQLMail的功能并有很大改进,所以非常建议放弃SQL Mail将其升级到Database Mail. 在此特别对软件开发工程师Monica致谢,感谢他为本文制作了题材广泛的测试和图片。

使用SQL Server发送电子邮件邮件需要三个基本配置步骤

1) 创建配置文件和帐户  2) 配置电子邮件 3) 发送电子邮件.

步骤1)创建配置文件和帐户

您需要创建一个配置文件和配置数据库邮件向导,用以访问配置数据库邮件管理节点中的数据库邮件节点及其上下文菜单中使用的帐户。可以使用此向导来管理帐户、 配置文件和数据库邮件的全局设置,如下所示:

Step 2)配置邮件:

在完成账户和配置文件创建之后,我们需要配置Database Mail.为了配置它,首先需要通过 sp_configure 存储过程,启用database mail XPs 参数,如下所示:sp_CONFIGURE``'show advanced'`` , ``1
GO
RECONFIGURE
GO
sp_CONFIGURE``'Database Mail XPs'`` , ``1
GO
RECONFIGURE
GO

Step 3) 发送邮件:

如上所有配置完成之后,我们就可以发邮件了,执行存储的过程的 sp_send_dbmail,并提供所需的参数,如下所示:

USE ``msdb
GO
EXEC ``sp_send_dbmail``@profile_name``=``'PinalProfile'``,
@recipients``=``'test@Example.com'``,
@subject``=``'Test message'``,
@body``=``'This is the body of the test message.
Congrates`` Database Mail Received By you Successfully.'

输入参数的所有验证都完毕后,邮件将在Service Broker中排序等待。关于这一点,更多信息请参见SQL SERVER – Introduction to Service Broker.

Database Mail将保留发出的电子邮件的副本,我们可以通过sysmail_allitems , sysmail_sentitems, sysmail_unsentitems, sysmail_faileditems来查询。邮件的发送状态将保存在sysmail_mailitems表中 ,成功发送时,该表中sent_status栏目将显示为1;发送失败时,sent_status栏目将显示为2,未发送时为3
如下所示,日志文件可以在sysmail_log 表中查看

SELECT ``*
FROM ``sysmail_mailitems
GO
SELECT ``*
FROM ``sysmail_log
GO

发送状态可以在sysmail_sentitems表中验证.

发送之后就可以在收件箱查阅邮件了,如下图所示是作者收到的邮件