程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 使用JMail組件代替Sql Mail發送Email

使用JMail組件代替Sql Mail發送Email

編輯:關於MYSQL數據庫

說兩句:在某人最困難的時候,寫下此文,寄給某某報想騙點稿費,結果石沉大海,若干年後,翻騰硬盤翻出來了。呵呵,或許可以對希望在SqlServer中發送郵件的網友有所幫助。

54powerman^_^

Sql Mail技術給每一位數據庫開發人員和DBA(數據庫管理員)帶來了極大的方便,利用該技術,SQL Server數據庫代理程序可以在系統出現異常的時候自動發送Email通知管理員,開發人可以利用它讓數據庫自動定期的修改用戶密碼,然後發送Email通知用戶……等等這些應用,都不同程度上把我們從繁雜的工作中解放出來。但是,Sql Mail的配置是比較復雜的,相信90%以上的人在配置Sql Mail的時候都遇到過各種各樣的麻煩,至少有70%的人放棄了Sql Mail而選擇其他方案來解決這個問題。筆者是一名web開發人員,親身經歷了這一切,並找到了一個更好的替代方法。不敢獨享,寫出來以飨讀者。
Sql Mail配置有幾種方式,按照支持軟件可劃分為基於Exchange、Outlook2000(以上)和第三方軟件的配置方案,三種方式各有利弊,主要表現在以下幾個方面:

使用Outlook客戶端配合SQL Server實現Sql Mail
此方案軟件要求較低,只需要在SQL Server所在服務器上安裝Outlook2000以上版本客戶端即可。它要求在Sql Mail使用期間,OutLook客戶端必須打開,否則,只能到下次打開時,郵件才能發送出去。另外,如果服務器為遠程服務器,用微軟官方的遠程桌面無法完成配置,可替代的方案是DBA親自去機房直接操作,或者安裝PcAnywhere10替代遠程桌面進行操作。

使用Exchange要求較高
Microsoft推薦使用Exchange作為Sql Mail的最佳拍檔,MSDN的資料提出:“由於 POP3/SMTP 協議存在的局限性和登錄問題,Microsoft 建議您使用 Exchange Server 來實現可靠性”。但是Exchange並不是專門做這個來使用的,可以說是屈才了,而且Exchange要求服務器配置域管理器,相信這個東東對大多數數據庫服務器來說用處不大,只不過是浪費資源罷了。如果我們要在多台服務器上配置Sql Mail那麼就需要在每一台服務器上配置域管理器,或者所有的服務器都配置到一個域內,但是對於服務器比較分散的系統來說這樣是不現實的。

使用第三方系統支持
微軟MSDN稱:“如果您使用的是第三方郵件服務器,則必須將郵件服務器配置為 POP3 服務器。如果這些郵件服務器使用的本地郵件服務可能是由第三方郵件客戶端安裝的,Microsoft 將不支持連接到這些服務器”。這就意味著你還要使用Windows平台的郵件服務,使用ASP編寫網站的朋友一定都知道,Cdonts.dll組件實在是……。
面對這些問題,筆者就變成了我剛才說的那70%了,雖然爬網無數,讀文字數萬把Sql Mail配置好了,但是我仍然絕對放棄,因為我不想在做第2台、第3台……的時候重蹈覆轍。替代的方案就是Jmail組件+OLE自動化對象,以上的問題迎刃而解。

預備知識
1.OLE自動化函數
OLE自動化使應用程序能夠對另一個應用程序中實現的對象進行操作,或者將對象公開以便可以對其進行操作。自動化客戶端是可對屬於另一個應用程序的公開對象進行操作的應用程序,本文值得是SQL Server。公開對象的應用程序稱為自動化服務器,又成為自動化組件,本文中即Jmail組件咯。客戶端通過訪問應用程序對象的屬性和函數對這些對象進行操作。
在Sql Server使用Ole組件的途徑是幾個系統擴展存儲過程sp_OACreate、sp_OADestroy、sp_OAGetErrorInfo、sp_OAMethod、sp_OASetProperty和sp_OAGetProperty,再次簡單地介紹一下使用方法,詳細資料參考SQL Server聯機叢書。
OLE自動化對象的使用方法:
(1)調用 sp_OACreate 創建對象。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved