2
我想用SQL Server發送電子郵件,發現從互聯網兩種可能的方式:SQL服務器:發送電子郵件
使用AOSMTP.Mail
Create PROCEDURE [dbo].[RC_SendEmail] @ServerAddr varchar(80), @FromAddr varchar(80), @Recipient varchar(80), @Subject varchar(132), @BodyText varchar(2000) AS DECLARE @hr int DECLARE @oSmtp int DECLARE @nRet int EXEC @hr = sp_OACreate 'AOSMTP.Mail',@oSmtp OUT EXEC @hr = sp_OASetProperty @oSmtp, 'RegisterKey', 'replace this text by your key' EXEC @hr = sp_OASetProperty @oSmtp, 'ServerAddr', @ServerAddr EXEC @hr = sp_OASetProperty @oSmtp, 'FromAddr', @FromAddr EXEC @hr = sp_OAMethod @oSmtp, 'AddRecipient', NULL, @Recipient, @Recipient, 0 EXEC @hr = sp_OASetProperty @oSmtp, 'Subject', @Subject EXEC @hr = sp_OASetProperty @oSmtp, 'BodyText', @BodyText EXEC @hr = sp_OAMethod @oSmtp, 'SendMail', @nRet OUT EXEC @hr = sp_OADestroy @oSmtp
然而,這
方法需要一個服務器地址。
我應該輸入什麼地址?電子郵件服務器?或數據庫服務器? 我只看到它在互聯網上使用'localhost'。但它不適合我。
使用CDONTS.NewMail
CREATE PROCEDURE [dbo].[SendEmail] @From varchar(100), @To varchar(100), @Subject varchar(100), @Body varchar(4000), @CC varchar(100) = null, @BCC varchar(100) = null AS Declare @MailID int Declare @hr int Declare @result 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', @result OUT EXEC @hr = sp_OADestroy @MailID select @result
這一個不需要服務器地址,但它並沒有正常工作。
任何人都可以更詳細地解釋這些和我應該做什麼?
非常感謝!
太謝謝你了! 它的工作原理! – user883434