【发布时间】:2012-03-21 22:30:05
【问题描述】:
我有一个在多个 ASP.NET (VB.NET) 网站之间共享的 SQL Server 数据库,该数据库有一个存储客户查询的表 - 我希望提供电子邮件通知,通知组织内相关人员的新查询(并可能将一些查询数据放入电子邮件正文中)。请有人概述一下我的选项如何实施?
我的想法是:
- SQLMail
- 数据库邮件
- VB.NET 存储过程使用 System.Net.Mail 库?
- 其他选项?
选项 3 似乎是可取的,因为我知道如何在 VB.NET 中执行此操作,而且很简单。
- 我还有哪些其他选择?
- 有什么注意事项?
- 我可以实时执行此操作,即触发(插入量低)吗?
- 还是分批完成(即作业)是否至关重要?
非常欢迎任何帮助! 谢谢。
【问题讨论】:
-
数据库邮件的拦截器是什么?这肯定比 CLR 更容易设置。
-
我对数据库邮件进行了一些研究,但我不确定是否需要连接到电子邮件服务器来发送电子邮件 - 如果是这种情况,那么我不能这样做因为它与我们的网络服务器是分开的。我熟悉如何从 VB.NET 发送电子邮件,因为我们在一个 ASP.NET (VB.NET) 网站上执行此操作,并且实际上发件人是“欺骗”的,但它不是垃圾邮件,因为它是内部的并且 DNS 记录确实包含网络服务器 IP 地址!
-
您可以在任何服务器上(包括 SQL Server 框或 Web 服务器上)设置简单的 SMTP 服务器。如果您不想使用 IIS 功能,还有其他可用的轻量级解决方案。你的 VB.NET 代码最终还是要连接到一个 SMTP 服务器,为什么 SQL Server 不能连接到同一个 SMTP 服务器?
-
我认为 ASP.NET (VB.NET) 代码使用“本地主机”电子邮件服务器 - 这可以从数据库邮件中获得吗?我对电子邮件服务器的了解有点零散……
-
那么 SQL Server 框必须使用 Web 服务器的实际内部 IP 地址或 DNS 名称(而不是“localhost”)。这可能意味着您需要在 Web 服务器上打开该端口以允许 SQL Server 框使用该 SMTP 服务器,但这并不是非常复杂。
标签: sql-server tsql stored-procedures clrstoredprocedure database-mail