2012-09-21 64 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