在SQL Server中配置Database Mail发送邮件(上)

日期: 2009-10-11 作者:Roman Rehak翻译:曾少宁 来源:TechTarget中国 英文

通过SQL Server发送邮件已经成为一个更可靠的过程。SQL Server 2005中的Database Mail提供许多改进——对比它的前身SQL Mail,包括与它与SMTP服务器的兼容。SQL Server专家Roman Rehak解释了如何在Database Mail架构中配置Profiles and Accounts来发送和监控电子邮件。   许多年来,SQL Mail是从SQL Server发送电子邮件的唯一内置选项。

SQL Mail有许多问题和缺点,主要是因为它依赖于MAPI (Messaging Application Program Interface)。为了使用SQL ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

通过SQL Server发送邮件已经成为一个更可靠的过程。SQL Server 2005中的Database Mail提供许多改进——对比它的前身SQL Mail,包括与它与SMTP服务器的兼容。SQL Server专家Roman Rehak解释了如何在Database Mail架构中配置Profiles and Accounts来发送和监控电子邮件。

  许多年来,SQL Mail是从SQL Server发送电子邮件的唯一内置选项。SQL Mail有许多问题和缺点,主要是因为它依赖于MAPI (Messaging Application Program Interface)。为了使用SQL Mail,我们需要在数据库服务器上安装Microsoft Exchange或Outlook。在一些版本中,邮件在Outlook上会出现问题,除非我们保持Outlook在服务器上一直运行。在后面的版本可以设置SQL Mail使用SMTP (Simple Mail Transfer Protocol)服务器(这仍然要求在服务器上安装Outlook),但发送邮件的过程经常会僵死并且需要重启SQL Server。

  SQL Server 2005的Database Mail对SQL Mail有许多的改进。其中最大的改进是Database Mail不再依赖于MAPI。它现在使用SMTP协议,并且我们可以配置SQL Server使用一个或多个SMTP服务器。

  Database Mail的另一个改进在于后台。它使用Service Broker队列化消息实现异步、进程外发送。并且如果是高端应用,我们将会乐意看到一些SQL Mail所没有的特性:Database Mail支持集群,它可以工作在64位的SQL Server。它还有许多电子邮件选项,包括附件、HTML格式和可导入性。

  配置Database Mail – Profiles and Accounts

  在我们开始设置Database Mail之前,让我们了解一些体系结构的基本概念。Database Mail使用Profiles and Accounts来发送电子邮件。Database Mail的基本对象是一个帐户。它包含发送一个电子邮件时需要的所有东西:帐户名、电子邮件地址、回复邮件地址、SMTP服务器及其端口号、其它参数。对于验证,我们可以使用Windows Authentication、Basic Authentication (用户名和密码)或Anonymous Authentication (如果SMTP服务器不要求)。Basic Authentication实际上允许我们使用外部网络的SMTP服务器发送电子邮件——只要能提供有效的身份认证。但是如果数据库服务器在防火墙后面,不能与防火墙外服务器进行通信,就是不可行的了。

  图1显示了使用smtp22.mydomain.com服务器发送电子邮件的账户配置

  图1:这个Database Mail帐户使用smtp22.mydomain.com服务器发送邮件

  现在我们知道了帐户,下面让我们看看模板。一个Database Mail模板只是带有序号的一组帐户。图2显示一个名为DBMailProfile1的模板,包含2个帐户。

  图2:这个Database Mail模板叫DBMailProfile1,包含了2个帐户

  当我们从SQL Server数据库发送邮件时,我们需要指定使用哪个模板。如果没有指定,Database Mail会使用默认的模板。每一个模板可以有一个或多个帐户,但它们的关系并不是完全分层的,这表示我们可以在多个模板中使用同一个帐户。在一个模板中包含多个帐户的主要目的是在所选的帐户不能发送邮件时提供一个备选,这会改进电子邮件系统的可靠性。

  如果队列中有一个新的邮件,Database Mail首先会尝试使用最后一个成功发送邮件的帐户——或者没有发送过邮件的最低序号的帐户。如果这个帐户发送失败,Database Mail会尝试使用下一个序号的帐户。当尝试完所有帐户都没有成功时,Database Mail会暂停一定时间(在系统参数中配置),然后从最低序号开始重新尝试。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐