2012-09-21 25 views
1

我有一个存储过程,它使用sp_send_dbmail生成并发送HTML电子邮件给客户。我收到了一份请求,要求我打印没有电子邮件地址的副本,以便邮寄。我的问题是在电子邮件地址中替换设置为将邮件转发到MailRoom中复印机的Faxport的交换服务器上的邮箱。它可以工作,但是非常麻烦,并且由于传真传输而受到各种延迟。将SQL发送到SQL存储过程中的打印机

看来,由于我的SQL服务器在域上,我应该能够将输出直接路由到存储过程中安装的任何打印机,但我一直无法找到任何方法将HTML发送到打印机从一个存储过程。

+0

也许某种C#扩展? –

+1

您是否设置了SSRS?这听起来很好用。或者,是否可以在Exchange服务器上设置一个帐户,只将所有电子邮件打印到指定的打印机? –

+0

SSIS允许您写入文本文件。然后您可以打印文件。 –

回答

1

存储过程非常适合操作数据,但在涉及到与数据库之外的系统资源进行交互时,它们非常有限。即使写入文件可能会很尴尬,不用担心打印。

我认为你应该重新考虑你的设计并开发一个外部脚本或程序来做到这一点,或许作为Windows服务来实现。该程序可以调用存储过程来获取HTML,然后通过电子邮件发送或根据需要进行打印。

进一步的增强将只从存储过程获取数据,并让程序将其格式化为HTML或其他格式,可能使用某种模板库和/或XSLT。如果您需要支持多种输出格式(“重要的客户X希望输出看起来有点不同”),并根据业务规则有不同的格式,那么这可能是一种非常有用的方法(“我们需要添加此免责声明,但仅限于导出订单“)或以多种语言提供输出。

+0

Pondlife,我明白你来自哪里。我的问题是,这个过程是为了向客户发送电子邮件而开发的,我们特别要求它打印那些没有电子邮件并且没有被告知的电子邮件。现在是它的一个要求,我们正试图不重新发明轮子,并且不需要维护电子邮件模板的两个副本,因为它经常变化......就这么说,我们会退后一步,看看我们是否可以/应该将打印和电子邮件移出程序。 – BillN

+1

如果电子邮件格式频繁更改,那么您需要专注于找到一个可以轻松实现这些更改的解决方案。我将从格式(外部脚本)中分离数据(存储过程),并找到一个很好的模板工具集,使您可以高效地创建和管理模板。 – Pondlife