SQL Server中,我們一般使用SQL本身的郵件發(fā)送方式,但需要配置Exchage Server、Outlook等,也是一個(gè)比較繁瑣的事情。很多人抱怨說(shuō)配置不成功。
其實(shí),我們可以在 SQL Server中創(chuàng )建 OLE 對象實(shí)例,調用IIS SMTP自帶的發(fā)送組件來(lái)實(shí)現郵件發(fā)送。
我們建立這個(gè)存儲過(guò)程,你需要修改的地方是,SmtpServer的名字
Create PROCEDURE sys_sendmail @From varchar(100) , @To varchar(100) , @Bcc varchar(500), @Subject varchar(400)=" ", @Body ntext =" "
AS
Declare @object int
Declare @hr int
EXEC @hr = sp_OACreate ‘CDO.Message‘, @object OUT
EXEC @hr = sp_OASetProperty @object, ‘Configuration.fields("
EXEC @hr = sp_OASetProperty @object, ‘Configuration.fields(", ‘smtp.163.com‘
--下面三條語(yǔ)句是smtp驗證,如果服務(wù)器需要驗證,則必須要這三句,你需要修改用戶(hù)名和密碼
EXEC @hr = sp_OASetProperty @object, ‘Configuration.fields("
EXEC @hr = sp_OASetProperty @object, ‘Configuration.fields("
EXEC @hr = sp_OASetProperty @object, ‘Configuration.fields("
EXEC @hr = sp_OAMethod @object, ‘Configuration.Fields.Update‘, null
EXEC @hr = sp_OASetProperty @object, ‘To‘, @To
EXEC @hr = sp_OASetProperty @object, ‘Bcc‘, @Bcc
EXEC @hr = sp_OASetProperty @object, ‘From‘, @From
EXEC @hr = sp_OASetProperty @object, ‘Subject‘, @Subject
EXEC @hr = sp_OASetProperty @object, ‘TextBody‘, @Body
EXEC @hr = sp_OAMethod @object, ‘Send‘, NULL
--判斷出錯
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN @object
END
PRINT ‘success‘
EXEC @hr = sp_OADestroy @object
GO
注意:必須確保安裝Smtp,可以訪(fǎng)問(wèn)CDO對象。
聯(lián)系客服