步驟 1:建立發送郵件預存程序
CREATE PROCEDURE [dbo].[proc_send_cdontsmail]
@From VARCHAR(100), @To VARCHAR(100), @Subject VARCHAR(100),
@Body VARCHAR(4000), @CC VARCHAR(100) = NULL, @BCC VARCHAR(100) = NULL
AS
DECLARE @MailID INT, @hr INT
EXEC @hr = sp_OACreate 'CDONTS.NewMail', @MailID OUT
EXEC @hr = sp_OASetProperty @MailID, 'From', @From
EXEC @hr = sp_OASetProperty @MailID, 'Body', @Body
EXEC @hr = sp_OASetProperty @MailID, 'BCC', @BCC
EXEC @hr = sp_OASetProperty @MailID, 'CC', @CC
EXEC @hr = sp_OASetProperty @MailID, 'Subject', @Subject
EXEC @hr = sp_OASetProperty @MailID, 'To', @To
EXEC @hr = sp_OAMethod @MailID, 'Send', NULL
EXEC @hr = sp_OADestroy @MailID
步驟 2:IIS SMTP 虛擬伺服器設定智慧主機
- 開啟「Internet 服務管理器」→「預設 SMTP 虛擬伺服器」→「內容」→「傳遞」頁籤→「進階」。
- 在「智慧主機」填入 SMTP 伺服器位址(如
smtp.163.com)。
- 確認 SMTP 服務與 IIS 管理服務均已啟動。
步驟 3:測試發送
EXEC proc_send_cdontsmail 'from@163.com', 'to@qq.com', 'sql mail', '測試郵件', '', ''
常見問題與補充
- 若缺少
cdonts.dll,需下載並註冊:regsvr32 cdonts.dll。
- QQ、Yahoo、Gmail 等 SMTP 需要驗證,直接填入智慧主機可能失敗;163、Sohu 等較易成功。
- Gmail 需額外執行自動設定工具。
各大郵件商 SMTP/POP3 設定參考
| 郵件商 | SMTP | POP3 | 備註 |
| 163 | smtp.163.com | pop.163.com | |
| QQ | smtp.qq.com | pop.qq.com | 需 SMTP 驗證 |
| Gmail | smtp.gmail.com | pop.gmail.com | 需 SSL/自動設定工具 |