SQL SERVER 2008 配置 Database Mail – 用 SQL 数据库发邮件
原文来自: http://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 表中验证 .
发送之后就可以在收件箱查阅邮件了,如下图所示是作者收到的邮件