我就把我配置SQL mail的過程描述一遍。
我用SQL mail主要是要完成這樣的功能:
>用戶在網(wǎng)上注冊(cè)后,系統(tǒng)將隨機(jī)產(chǎn)生的密碼發(fā)送到用戶登記的Email
>用戶在論壇的帖子有回復(fù)時(shí)將內(nèi)容發(fā)送到用戶的Email
因?yàn)樯鲜鲞^程都是在存儲(chǔ)過程中完成的,所以避免了前臺(tái)程序?qū)?shù)的
傳輸處理,也不需要再用第三方的組件完成,感覺比較方便。
1.為了使用SQL mail,首先你的服務(wù)器上得有SMTP服務(wù),我沒有安裝win2000 server自帶的SMTP,而是用imail6.04的SMTP,感覺比較穩(wěn)定,功能也比較強(qiáng)。
2.安裝一個(gè)郵件系統(tǒng),我安裝了outLook 2000,我發(fā)現(xiàn)在配置郵件profile時(shí),如果
不安裝outLook而是用別的第三方程序,win2k中文server版在控制面板中就找不到“郵件”一項(xiàng).
3.安裝完outlook后再刷新控制面板,就會(huì)找到“郵件”一項(xiàng),雙擊進(jìn)行郵件的配置,為配置文件起一個(gè)名字(假設(shè)為myProfile),以便以后SQL mail使用,在該配置文件中設(shè)置各項(xiàng)屬性。
4.啟動(dòng)outlook(設(shè)置為用myProfile作為默認(rèn)的配置文件),測試進(jìn)行收發(fā)郵件,確認(rèn)outlook工作正常。
5.用當(dāng)前的域帳戶啟動(dòng)SQL server,在企業(yè)管理器的支持服務(wù)中,點(diǎn)擊SQL mail的屬性,可以看到在配置文件選擇中,出現(xiàn)了剛才定義的myProfile配置文件(你也可以定義多個(gè)profile),選擇這個(gè)配置文件進(jìn)行測試,SQL將返回成功開始和結(jié)束一個(gè)MAPI會(huì)話的信息,如果出現(xiàn)錯(cuò)誤或是沒有找到郵件配置文件,那一定是你啟動(dòng)SQL server用的帳號(hào)有問題
6.現(xiàn)在你就可以在查詢分析器中用XP_sendmail這個(gè)擴(kuò)展存儲(chǔ)過程發(fā)送SQL mail了,格式如下:
xp_sendmail {[@recipients =] 'recipients [;...n]'}
[,][@message =] 'message']
[,][@query =] 'query']
[,][@attachments =] attachments]
[,][@copy_recipients =] 'copy_recipients [;...n]'
[,][@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
[,][@subject =] 'subject']
[,[@type =] 'type']
[,][@attach_results =] 'attach_value']
[,][@no_output =] 'output_value']
[,][@no_header =] 'header_value']
[,][@width =] width]
[,][@separator =] 'separator']
[,][@echo_error =] 'echo_value']
[,][@set_user =] 'user']
[,][@dbuse =] 'database']
其中@recipients是必需的
參數(shù)說明:
參數(shù) 說明
@recipients 收件人,中間用逗號(hào)分開
@message 要發(fā)送的信息
@query 確定執(zhí)行并依附郵件的有效查詢,除觸發(fā)器中的插入表及刪除表外,此查詢能引用任何對(duì)象
@attachments 附件
@copy_recipients 抄送
@blind_copy_recipients 密送
@subject 標(biāo)題
@attach_results 指定查詢結(jié)果做為附件發(fā)送
@no_header 不發(fā)送查詢結(jié)果的列名
@set_user 查詢聯(lián)接的用戶名,默認(rèn)為Guset
@dbuse 查詢所用的數(shù)據(jù)庫,默認(rèn)為缺省數(shù)據(jù)庫
7.不過,如果是在web應(yīng)用中使用SQL mail,還有一些問題要解決:首先,就是應(yīng)用程序中連接數(shù)據(jù)庫的帳號(hào),我在網(wǎng)站程序中的數(shù)據(jù)庫連接是使用UDL文件,帳號(hào)為DbGuest,這是一個(gè)普通帳戶,所以還必須在master庫的擴(kuò)展存儲(chǔ)過程找到XP_sendmail,并在其屬性中增加DbGuest這個(gè)用戶,并選擇EXEC權(quán)限。
好了,現(xiàn)在設(shè)置完畢,運(yùn)行網(wǎng)站程序,測試用戶注冊(cè),幾乎沒有什么延遲,我測試用的郵箱中就收到了這封SQL mail發(fā)出的Email:
"謝謝你的注冊(cè),你的用戶名是 [心歌],密碼是 123456789,建議你首次登錄后修改密碼"
大功告成!看起來很簡單的過程,卻折騰了我一個(gè)星期!希望你能比我順利.
不過,現(xiàn)在雖然能用SQLmail發(fā)送附件,附加數(shù)據(jù)庫查詢結(jié)果,但是我還沒有發(fā)現(xiàn)有什么辦法用SQLmail發(fā)送html格式的郵件,如果你知道,請(qǐng)一定告訴我喲!