[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
沒有留言:
張貼留言