我是否可以使用SQL数据库邮件通过其URL将HTML页面作为消息发送,方法与VBScript中的CDO.message对象相同?

我是否可以使用SQL数据库邮件通过其URL将HTML页面作为消息发送,方法与VBScript中的CDO.message对象相同?,sql,sql-server,email,vbscript,ssms,Sql,Sql Server,Email,Vbscript,Ssms,我正在做一个项目,它使用SQL触发器在某些字段更新时发送电子邮件,电子邮件需要采用HTML格式,设计复杂,使用@body_format='HTML'命令很难实现这一点。目前为止,我找到的唯一一篇文章是关于在SQL代码中使用HTML格式化消息体的,但我希望引用URL并将相应的页面作为HTML正文发送 我知道在VBScript中有一种方法可以生成HTML页面并通过在CDO.message对象上使用.CreateHTMLBody命令引用其URL将其作为消息发送,这就是我在SQL中寻找的功能 我正在使用

我正在做一个项目,它使用SQL触发器在某些字段更新时发送电子邮件,电子邮件需要采用HTML格式,设计复杂,使用@body_format='HTML'命令很难实现这一点。目前为止,我找到的唯一一篇文章是关于在SQL代码中使用HTML格式化消息体的,但我希望引用URL并将相应的页面作为HTML正文发送

我知道在VBScript中有一种方法可以生成HTML页面并通过在CDO.message对象上使用.CreateHTMLBody命令引用其URL将其作为消息发送,这就是我在SQL中寻找的功能


我正在使用Microsoft SQL Server Management Studio。

简短回答否。。。。长答案是:)

如何做到这一点

1) 如果您在web上构建页面,那么只需将
html
存储在一个表中并进行查找即可。如果它需要一直更改,请以模板方式构建
html
,将一些疯狂的文本放在某些位置(
@@FIRSTNAME@
),然后用动态内容
替换
,这样一来,您就可以轻松地处理html了

2) 用VB代码构建CLR。这是更复杂的,但从另一方面来说,你也可以直接从这里通过SMTP网关发送你的邮件,我遇到的问题是,DB mail重试并向公共用户发送了太多的邮件,所以我根本不使用它发送大量邮件

3) 构建一个SSIS包,并将VB脚本放在脚本任务中以生成电子邮件,创建SQL代理作业,然后使用tSQL执行该作业

4) 直接调用VBScript
xp\u CmdShell
或直接从触发器调用其他方法。从安全角度来看,这无疑是最可怕的影响,但如果你锁定访问权限,只允许某些用户访问,那就没那么糟糕了。。。。。。这里有一篇文章,我还没有读完整,但看起来是非常详尽的主题


增加了使用方法>1的好处。如果需要,您可以创建一个线程应用程序来快速发送数千条消息!由于线程clr,我在不到一分钟的时间内从DB服务器向Exchange服务器发送了2000条消息。…

简短回答否。。。。长答案是:)

如何做到这一点

1) 如果您在web上构建页面,那么只需将
html
存储在一个表中并进行查找即可。如果它需要一直更改,请以模板方式构建
html
,将一些疯狂的文本放在某些位置(
@@FIRSTNAME@
),然后用动态内容
替换
,这样一来,您就可以轻松地处理html了

2) 用VB代码构建CLR。这是更复杂的,但从另一方面来说,你也可以直接从这里通过SMTP网关发送你的邮件,我遇到的问题是,DB mail重试并向公共用户发送了太多的邮件,所以我根本不使用它发送大量邮件

3) 构建一个SSIS包,并将VB脚本放在脚本任务中以生成电子邮件,创建SQL代理作业,然后使用tSQL执行该作业

4) 直接调用VBScript
xp\u CmdShell
或直接从触发器调用其他方法。从安全角度来看,这无疑是最可怕的影响,但如果你锁定访问权限,只允许某些用户访问,那就没那么糟糕了。。。。。。这里有一篇文章,我还没有读完整,但看起来是非常详尽的主题

增加了使用方法>1的好处。如果需要,您可以创建一个线程应用程序来快速发送数千条消息!由于线程clr,我在不到一分钟的时间内从DB服务器向Exchange服务器发送了2000条消息