正確配置和使用SQL mail_電腦知識網
熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

正確配置和使用SQL mail

2013-11-12 23:41:25  來源: SQL Server 

  我就把我配置SQL mail的過程描述一遍
  
  我用SQL mail主要是要完成這樣的功能
  >用戶在網上注冊後系統將隨機產生的密碼發送到用戶登記的Email
  >用戶在論壇的帖子有回復時將內容發送到用戶的Email
  因為上述過程都是在存儲過程中完成的所以避免了前台程序對參數的
  傳輸處理也不需要再用第三方的組件完成感覺比較方便
  
  為了使用SQL mail首先你的服務器上得有SMTP服務我沒有安裝win server自帶的SMTP而是用imail的SMTP感覺比較穩定功能也比較強
  安裝一個郵件系統我安裝了outLook 我發現在配置郵件profile時如果
  不安裝outLook而是用別的第三方程序wink中文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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.