我就把我配置SQL mail的過程描述一遍
我用SQL mail主要是要完成這樣的功能
>用戶在網上注冊後
系統將隨機產生的密碼發送到用戶登記的Email
>用戶在論壇的帖子有回復時將內容發送到用戶的Email
因為上述過程都是在存儲過程中完成的
所以避免了前台程序對參數的
傳輸處理
也不需要再用第三方的組件完成
感覺比較方便
為了使用SQL mail
首先你的服務器上得有SMTP服務
我沒有安裝win
server自帶的SMTP
而是用imail
的SMTP
感覺比較穩定
功能也比較強
安裝一個郵件系統
我安裝了outLook
我發現在配置郵件profile時
如果
不安裝outLook而是用別的第三方程序
win
k中文server版在控制面板中就找不到
郵件
一項
安裝完outlook後再刷新控制面板
就會找到
郵件
一項
雙擊進行郵件的配置
為配置文件起一個名字(假設為myProfile)
以便以後SQL mail使用
在該配置文件中設置各項屬性
啟動outlook(設置為用myProfile作為默認的配置文件)
測試進行收發郵件
確認outlook工作正常
用當前的域帳戶啟動SQL server
在企業管理器的支持服務中
點擊SQL mail的屬性
可以看到在配置文件選擇中
出現了剛才定義的myProfile配置文件(你也可以定義多個profile)
選擇這個配置文件進行測試
SQL將返回成功開始和結束一個MAPI會話的信息
如果出現錯誤或是沒有找到郵件配置文件
那一定是你啟動SQL server用的帳號有問題
現在你就可以在查詢分析器中用XP_sendmail這個擴展存儲過程發送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是必需的
參數說明
參數 說明
@recipients 收件人
中間用逗號分開
@message 要發送的信息
@query 確定執行並依附郵件的有效查詢
除觸發器中的插入表及刪除表外
此查詢能引用任何對象
@attachments 附件
@copy_recipients 抄送
@blind_copy_recipients 密送
@subject 標題
@attach_results 指定查詢結果做為附件發送
@no_header 不發送查詢結果的列名
@set_user 查詢聯接的用戶名
默認為Guset
@dbuse 查詢所用的數據庫
默認為缺省數據庫
不過
如果是在web應用中使用SQL mail
還有一些問題要解決:首先
就是應用程序中連接數據庫的帳號
我在網站程序中的數據庫連接是使用UDL文件
帳號為DbGuest
這是一個普通帳戶
所以還必須在master庫的擴展存儲過程找到XP_sendmail
並在其屬性中增加DbGuest這個用戶
並選擇EXEC權限
好了
現在設置完畢
運行網站程序
測試用戶注冊
幾乎沒有什麼延遲
我測試用的郵箱中就收到了這封SQL mail發出的Email:
謝謝你的注冊
你的用戶名是 [心歌]
密碼是
建議你首次登錄後修改密碼
大功告成!看起來很簡單的過程
卻折騰了我一個星期!希望你能比我順利
不過
現在雖然能用SQLmail發送附件
附加數據庫查詢結果
但是我還沒有發現有什麼辦法用SQLmail發送html格式的郵件
如果你知道
請一定告訴我喲!
From:http://tw.wingwit.com/Article/program/SQLServer/201311/11237.html