2012年2月16日 星期四

資料庫 MS SQL - 寄送 email


[MSSQL 2008] SQL Server Agent使用Database Mail發送電子郵件
SQL SERVER – 2008 – Configure Database Mail – Send Email From SQL Database

以上兩篇對 SQL 2005 也可適用,有發信成功。

實際運用


使用某公司的 ERP 系統。一筆客戶訂單新增完,等待各方確認,例如客戶是否匯款。確認後轉為製造命令,工廠開始準備產品。但是製令成立後,工廠不會知道有新的產品要開始生產,該 ERP 系統並沒有自動寄信通知的功能,要有人通知才知道。但是人工通知時還要溝通單號,不論是透過電話、email、或是工廠員工每天三不五時就登入一下,查看有無新製令,都很麻煩。現在工廠希望製令成立後,可自動發信通知。

一筆訂單會有多筆產品,每筆產品各對應一筆製造命令。也就是一筆訂單單身對應一筆製造命令單頭。一項產品由多種材料組成,所以製造命令也有自己的單身。

作法一:使用觸發器+Database Mail

當新增一筆製造命令時,去抓該筆訂單的資料,然後寄信通知。並寫入狀態,表示該筆訂單已寄信通知。這樣當第二筆製造命令成立,但是是同一筆訂單,就不會再重複寄信。
另外再加兩個自訂資料表:EmailBody、EmailForm


EmailForm:

ef_id ef_name ef_emails
PI510 製令通知單 aaa@example.com;bbb@example.com;ccc@example.com


EmailBody:

eb_id createtime
PI5102012020027 2012-02-16 00:00:00


作法二:使用觸發器 + PHPMailer

自訂資料表:
EmailForm
EmailFormReceivers
EmailBody
EmailQueue
EmailHistory

沒有留言:

張貼留言