首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Mail 完整設定與使用指南:Outlook MAPI、xp_sendmail、Web 應用權限

     編輯:關於SqlServer

適用場景

  • 使用者註冊 → 系統寄送隨機密碼。
  • 論壇回覆 → 通知作者。
  • 均在預存程序中完成,無需前端元件。

設定步驟 (Windows 2000 + SQL Server 7.0/2000)

  1. SMTP 服務:安裝 IIS SMTP 或第三方 (如 Imail),確保可發信。
  2. Outlook 2000:安裝並建立郵件設定檔 (如 MyProfile),測試收發正常。
  3. SQL Server 服務帳戶:以建立郵件設定檔的網域帳戶啟動 SQL Server (企業管理器 → 服務 → 登入帳戶)。
  4. SQL Mail 設定:企業管理器 → 支援服務 → SQL Mail 屬性 → 選擇 MyProfile → 測試「成功啟動/結束 MAPI 工作階段」。
  5. 授權應用帳戶:Web 連線用 DbGuest 帳戶 → master 資料庫 → 擴充預存程序 xp_sendmail → 屬性 → 權限 → 加入 DbGuest 勾選 EXEC。

xp_sendmail 參數速查

EXEC xp_sendmail
    @recipients = 'user@domain.com',          -- 收件者 (必填,多個用分號)
    @subject = '註冊確認',
    @message = '您的密碼: 123456',
    @query = 'SELECT * FROM Orders WHERE CustID = 123',  -- 附加查詢結果
    @attach_results = 'TRUE',                 -- 查詢結果做附件
    @no_header = 'FALSE',                     -- 包含欄位名
    @width = 80,                              -- 文字寬度
    @separator = ',',                         -- 欄位分隔符
    @dbuse = 'Northwind'                      -- 查詢資料庫

常見問題

  • 找不到設定檔:SQL Server 啟動帳戶 ≠ 建立 Outlook 設定檔的帳戶。
  • 權限不足:應用帳戶無 xp_sendmail 執行權限。
  • HTML 郵件:xp_sendmail 僅支援純文字。需 HTML 請用 CLR 預存程序 (System.Net.Mail) 或 CDO 元件。

現代替代 (SQL 2005+)

sp_send_dbmail (Database Mail) 取代 SQL Mail:無需 Outlook/MAPI、支援 HTML/附件/SSL、獨立郵件設定檔、非同步發送、完整記錄與重試機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved