通过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中国
通过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的能源管理》等。
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。