Я хочу использовать SQL Server для отправки электронной почты и нашел два возможных пути из интернета:
Использование 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
Этот адрес не требует адреса сервера, но он также не работает.
Может кто-нибудь объяснить более подробно об этом и что я должен делать?
Большое спасибо !!!