俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

俄罗斯贵宾会使用SQL SERVER 来自动发送邮件

 

SQL Server数据库邮件使用 SMTP 服务器转发邮件,允许用户配置数据库邮件,并通过存储过程 msdb.dbo.sp_send_dbmail 向特定的用户发送邮件,邮件的格式可以是文本、Excel、或HTML。数据库邮件的最大用处是向数据库运维人员及时发送异常信息,当数据库出现异常时,数据库系统可以在第一时间发送邮件通知数据库运维人员,这样便于尽快排除数据库运行的异常情况,保证数据库能够正常、持续地提供服务。 

俄罗斯贵宾会,可以使用SQL SERVER 来发送自动邮件,主要是使用SQL SERVER 的dbo.sp_send_dbmail 存储过程(在msdb数据库中)。

一,配置数据库邮件

具体步骤如下:

配置数据库邮件时,主要配置两个对象:Account 和 Profile,数据库账户(Account)包含SQL Server用于把邮件发送给SMTP 服务器的信息,包含外发(outgoing)的邮件地址,显示名(Display Name)以及使用SMTP服务器地址;每一个account包含一个SMTP 服务器。数据库邮件配置(Profile)是账户(Account)的有序集合,存储过程 msdb.dbo.sp_send_dbmail 或SQL Server Agent 使用Profile发送邮件,而不是直接使用Account。Profile提供邮件发送服务的自动故障转移(failover),由于一个Profile包含多个Account,当第一个Account出现故障时,Profile自动使用后续的Account发送邮件,实现邮件发送的自动故障转移。当SMTP服务器变更时,DBA只需要修改Account,而不需要修改Profile,使得编程更加灵活和可靠。

Step1: 编写要发送的邮件内容,然后调用sp_send_dbmail 存储过程来发送邮件:

下面的示例图展示数据库邮件的配置:3个Account,2个Profile,每个Profile都包含2个Account,

declare @tableHTML varchar(max)

SET @tableHTML =

N'<style>

table { width:100%;}

table, th, td {

border: 1px solid black;

border-collapse: collapse;}

th, td {

padding: 5px;

text-align: left;}

th { background-color:#4682B4;

font-size:12.0pt;

font-weight:bold;

font-family:Arial ,sans-serif;

color :#ffffff;}

 tr { font-size:8.0pt;font-family:Arial,sans-serif;}'+

N'</style><H1 style="text-align:center">部门信息</H1>'+

N'<table align="center">'+

N'<tr><th width=20%" >部门编号</th>'+

N'<th width=40%>部门名称</th><th width=40%>上级部门名称</th>'+
N'</tr>'+
CAST((
select 
td=a.DepartID,'',
td=a.DepartName,'',
td=ISNULL(b.DepartName,'(NULL)'),''
from TTEM.dbo.EMOrgStructure a 

leftjoin TTEM.dbo.EMOrgStructure b on a.DepartParentID=b.DepartID

FORXMLPATH('tr'),TYPE

)ASNVARCHAR(MAX))+

N'</table>';
Exec dbo.sp_send_dbmail
@profile_name='DannyTest',
 @recipients ='V-Test@163.com',
 @subject='Test Stored Procedure Funtion of Sending Mails',
 @body=@tableHTML,
 @body_format ='HTML';

俄罗斯贵宾会 1

 

1,打开配置数据库邮件的向导

Step2: 执行完STEP1 的代码后就可以在收件箱中查看到刚才从SQL SERVER 自动发送的邮件了:

在SSMS的Management目录中,右击“Database Mail”弹出快捷菜单,点击“Configure Database Mail”,打开数据库邮件配置向导 “Database Mail Configuration Wizard”,在向导界面上,选择“Set up Database Mail by performing the following tasks”选项,点击“Next”按钮,开始配置数据库邮件:

 

俄罗斯贵宾会 2

俄罗斯贵宾会 3

2,创建数据库邮件配置(Profile)

   

在发送数据库邮件之前,必须创建数据库邮件的配置(Profile),在配置中指定:邮件服务器(SMTP Server)的账户,一个数据库邮件配置可以包含多个SMTP 账户,点击“Add”按钮,添加SMTP Account:

Step3: 初次在MSDB 中调用sp_send_dbmail 时,可能不成功,这是因为数据库默认没有启用和配置邮件功能,可参考如下步骤:

俄罗斯贵宾会 4

1,在SQL MANAGEMETN STUDIO 的“Management”---->"Database Mail"中进行配置:主要时设置Profile Name,设置发送邮件的发送人,发送邮件服务器等

3,配置SMTP账户

 

配置新添加的SMTP Account,配置数据库邮件的发送地址(E-mail Address)及其显示名称(Display Name),邮件服务器的地址(在Server Name中填写邮件服务器的URL,在Port Number中填写端口号),和身份验证(SMTP Authentication)信息:

俄罗斯贵宾会 5

俄罗斯贵宾会 6

 

在配置Account时,有三种SMTP验证方式,分别是Windows域账户验证、基本验证(用户名和密码)、匿名验证,大多数STMP服务器都需要账户登陆,很少有匿名验证方式。

 

4,设置默认的Profile

俄罗斯贵宾会 7

如果设置了默认的Profile,执行msdb.dbo.sp_send_dbmail 时不需要@profile_name显式指定配置名称:

更详细的配置可参考如下页面:

俄罗斯贵宾会 8

https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql-server-2008database-mail-sql

5,发送测试邮件

本文由俄罗斯贵宾会发布于数据库,转载请注明出处:俄罗斯贵宾会使用SQL SERVER 来自动发送邮件

您可能还会对下面的文章感兴趣: