SQL傳送郵件

2021-09-30 04:59:02 字數 3436 閱讀 2659

傳送郵件儲存過程

create procedure [dbo].[sys_sendmail]

@from varchar(100),

@to varchar(100),

@bcc varchar(500),

@subject varchar(400) = " ",

@body ntext = " "

as declare @object int,

@hr int

declare @serverhost nvarchar(100),

@username nvarchar(100),

@password nvarchar(50),

@usessl int

declare @ssl nvarchar(10),

@useservercredentials int

set @serverhost = 'smtp.tom.com'

set @username = '******@tom.com'

set @password = '******'

set @usessl = 0

set @useservercredentials = 1

if @usessl = 1

begin

set @ssl = 'true'

endelse

begin

set @ssl = 'false'

endexec @hr = sp_oacreate 'cdo.message', @object out

exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

'2'exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

@serverhost

exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

@ssl

if @useservercredentials = 1

begin

exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

'1'exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

@username

exec @hr = sp_oasetproperty @object,

'configuration.fields("").value',

@password

endexec @hr = sp_oamethod @object, 'configuration.fields.update', null

exec @hr = sp_oasetproperty @object, 'to', @to

exec @hr = sp_oasetproperty @object, 'from', @from

exec @hr = sp_oasetproperty @object, 'subject', @subject

exec @hr = sp_oasetproperty @object, 'htmlbody', @body

exec @hr = sp_oamethod @object, 'send', null

--判斷出錯

if @hr <> 0

begin

exec sp_oageterrorinfo @object

--   return @object

endexec @hr = sp_oadestroy @object

業務資料處理儲存過程

create procedure [dbo].[sp_notify_dba]

as begin

set nocount on ;

declare @a nvarchar(80)

declare @b nvarchar(80)

declare @c nvarchar(80)

declare @d nvarchar(80)

declare @str_send nvarchar(2000)

--宣告for dcs表游標

declare cursor_for_me cursor scroll dynamic

for select  a, b, c, d  from    mytable  where   ( day >  ( getdate() - 12 ) )

set @str_send = '郵件傳送內容: ' + ''

--開啟游標

open cursor_for_me

--迴圈獲取游標

fetch next from cursor_for_me  into @a, @b, @c, @d

while( @@fetch_status = 0 )

begin

set @str_send = @str_send + @a+  ' , ' + @b +  ' , ' + @c +  ' , '  + @d + ''

fetch next from cursor_for_me  into @a, @b, @c, @d

end--關閉游標

close cursor_for_me

--刪除游標

deallocate cursor_for_me

print @str_send

--呼叫sys_sendmail傳送郵件

exec [dbo].[sys_sendmail] @from = n'******@tom.com',

@to = n'******@163.com', @bcc = n'',

@subject = n'郵件標題頭', @body = @str_send

end若執行出現如下提示

「sql server 阻止了對元件 'ole automation procedures' 的 過程'sys.sp_oacreate' 的訪問,因為此元件已作為此伺服器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'ole automation procedures'。有關啟用 'ole automation procedures' 的詳細資訊,請參閱 sql server 聯機叢書中的 "外圍應用配置器"。 語句已終止。」

可執行以下語句

sp_configure 'show advanced options', 1;

goreconfigure;

gosp_configure 'ole automation procedures', 1;

goreconfigure;

go

sql 傳送郵件

一 啟用database mail xps功能。檢視database mail xps功能是否開啟,從返回結果來看,value為0說明沒有開啟,注意sql mail xps是sql server早期版本提供的傳送郵件功能,而現在用的是database mail xps來實現傳送郵件。啟動databa...

html傳送郵件 Python傳送郵件(三十)

簡單郵件傳輸協議 smtp 是一種協議,用於在郵件伺服器之間傳送電子郵件和路由電子郵件。python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它...

SQL2005 傳送郵件

最近在csdn上面看了 實現統計乙個表的記錄數,如果每天超過一定數量就傳送郵件報警的作業指令碼 帖子。但是上面好多的意見多是在sql2000上面的。於是自己就開始了一下在sql2005上面的實踐。1。首先要啟用資料庫郵件儲存過程。具體操作如下 在 開始 選單上,依次指向 所有程式 microsoft...