當前位置:首頁 » 編程語言 » sqlserver2008發送郵件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver2008發送郵件

發布時間: 2023-06-26 04:39:51

1. 如何通過sqlserver資料庫發送郵件

Database Mail代替了SQL Mail,它使用一個簡單郵件傳輸協議(SMTP)伺服器,而不是SQL Mail所要求的MAPI賬號來發送電子郵件。 這允許你的組織發送帶附件和查詢結果的電子郵件,附加查詢結果,以及格式化HTML電子郵件。你還可以用它設定許多其它配置,而不需要你擁有一台Exchange伺服器或配置任何類型的MAPI工作區。 使用Database Mail的好處除完全以SMTP為基礎外,Database Mail還具有許多其它優點:
它在資料庫引擎以外運行,因此對資料庫引擎的壓力最小。
它支持群集,完全支持群集環境。
它的用戶資料(Profile)允許使用冗餘SMTP伺服器。(我將在本文後部分詳細討論這一點。)
它允許你以參數的形式向存儲過程發送查詢文本,存儲過程將執行查詢並在電子郵件中發送結果。
消息通過一個Service Broker隊列非同步傳送,因此你在發送電子郵件時不必等待回應。 它為電子郵件發送提供多重安全保護,如一個控制附件擴展名的過濾器和一個附件大小管理器。 建立和使用Database Mail在建立一個Database Mail解決方案前,你需要進行一些規劃工作。首先,你必須具有一台有效的SMTP伺服器來傳送電子郵件。如果你沒有SMTP伺服器,請參閱微軟知識庫文章308161了解建立SMTP伺服器的相關信息。如果你無法確定組織是否擁有SMTP伺服器,詢問你的網路管理員獲得機器名稱或伺服器的IP地址。你的網路管理員可能需要對伺服器進行配置,以便SQL Server能夠發送電子郵件。 在Database Mail中,賬戶(Account)保存資料庫引擎用來發送電子郵件消息的信息。一個賬戶只為一台電子郵件伺服器保存信息,如賬戶名、電子郵件地址、回復電子郵件地址、伺服器名稱或IP地址,以及一些可選的安全設置。 要發送一封Database Mail電子郵件,必須使用一個用戶資料(Profile)。用戶資料為一個或幾個賬戶設立。這種用戶資料-賬戶設置非常有用。它允許你將幾個賬戶和一個用戶資料聯系起來,這意味著你可以將幾台電子郵件伺服器和一個用戶資料聯系起來。 因此,當你試圖發送一封電子郵件時,系統會嘗試用戶資料中的每個賬戶,直到消息被成功發送出去。如果一台或幾台SMTP伺服器出現故障,這種設置就十分有用。它還允許你開發發送電子郵件的應用程序代碼,而不必擔心針對不同的環境修改Profile名稱。你可以在開發和生產環境中使用相同的Profile名稱,唯一的差別在於用戶資料中包含的賬戶有所不同。 該是時候了解如何建立一個Database Mail賬戶了。在我們的例子中,我假設你正坐在一台你具有系統管理員訪問許可權的開發機器前。如果你沒有系統管理員許可權,你需要成為msdb資料庫DatabaseMailUserRole的一員。 下面的腳本建立一些我在整個實例中都要用到的變數。

2. SQL Server中如何配置資料庫郵件

SQL Server中的資料庫郵件功能可以實現自動發送郵件,這個功能在實際的項目中非常的有用。那麼如何配置SQLServer的資料庫郵件功能呢?下面我給大家分享一下。

工具/材料

SQLServer Managment

首先打開資料庫的管理文件夾,然後右鍵單擊資料庫郵件選項,選擇配置資料庫郵件,如下圖所示

接下來會彈出數跡拆據庫郵件配置向導界面,這里直接點擊下一步即可,如下圖所示

然後需要選擇配置任務,這里我們選擇第一個選項即可,如果已經配置過資料庫郵件的話則可以選擇第二個選項,如下圖所示

接下來在新建配置文件界面中給配置文件起一個名字,然後點擊添加按鈕,如下圖所示

然後會進入新建資料庫郵件賬戶界面,在這個界面中需要配置郵件伺服器的地址以及埠,如下圖所示

添加好郵件賬戶以後回到配置文件界面,這個時候新添加的郵件賬戶就在賬戶列表中了,然後點姿灶棗擊下一步,如下圖所示

接下辯亮來進入管理配置文件安全性的界面,我們勾選配置文件,然後點擊下一步即可,如下圖所示

然後需要進行系統參數的配置,這里大家根據自己的需要配置即可,如果沒有特殊要求直接默認即可,如下圖所示

接下來SQL Server會把剛才的配置都列舉出來,我們檢查一下,沒有問題的話直接點擊完成即可,如下圖所示

最後我們打開資料庫郵件的發送界面,用剛才配置好的資料庫郵件發送一封測試郵件試試,如果正常發送則證明配置沒問題

3. SQL 2008 R2 資料庫郵件正常 報表訂閱無法發送郵件

我的理解是你發送郵件訂閱報錯了,是吧,

這種錯誤通常當 SMTP 伺服器上的安全策略設置僅允許經過身份驗證的用戶提交郵件以進行後續傳遞時,會出現此錯誤。如果 SMTP 伺服器不接受匿名用戶的電子郵件提交,則請與系統管理員聯系以獲取使用伺服器的許可權。

如果將 Exchange Server 名稱指定為 SMTPServer,則也會發生此錯誤。若要使用 Exchange 伺服器傳遞電子郵件,必須指定為 Exchange 伺服器配置的 SMTP 網關的名稱。請與 Exchange 管理員聯系獲取此信息。

打開 Reporting Services Configuration Management:

  1. Change the Reporting Services Windows account to be a account(e.g. Domain Account), which has permissions to send mails via the SMTP server.

  2. Open rsreportserver.config with TextEditor(e.g. notepad), change the SMTPAuthenticate to
    <SMTPAuthenticate>2</SMTPAuthenticate>

  3. Save the file, and then restart the Reporting Services.

  4. Now, we should be able to send mails.

https://technet.microsoft.com/zh-cn/library/ms159171(v=sql.105).aspx
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ab8ab29e-640b-4114-bde3-9a532c53700b/unable-to-send-email-through-ssrs?forum=sqlreportingservices

4. 我想把一個查詢結果用SQL發出郵件這個過程怎麼做

--1.啟用DatabaseMail擴展存儲過程
sp_configure'showadvancedoptions',1
GO
RECONFIGURE
GO
sp_configure'DatabaseMailXPs',1
GO
RECONFIGURE
GO
sp_configure'showadvancedoptions',0
GO
RECONFIGURE
GO

--2.添加account
execmsdb..sysmail_add_account_sp
@account_name='zhanghao'--郵件帳戶名稱SQLServer使用
,@email_address='[email protected]'--發件人郵件地址
,@mailserver_name='smtp.126.com'--郵件伺服器地址
,@mailserver_type='SMTP'--郵件協議SQL2005隻支持SMTP
,@port=25--郵件伺服器埠
,@username='zhanghao'--用戶名
,@password='mima'--密碼

--3.添加profile
execmsdb..sysmail_add_profile_sp
@profile_name='dba_profile'--profile名稱
,@description='dbamailprofile'--profile描述
,@profile_id=null

--4.映射account和profile
execmsdb..sysmail_add_profileaccount_sp
@profile_name='dba_profile'--profile名稱
,@account_name='zhanghao'--account名稱
,@sequence_number=1--account在profile中順序

--5.1發送文本郵件
execmsdb..sp_send_dbmail
@profile_name='dba_profile'
,@recipients='[email protected]'
,@subject='SQLServer郵件測試'
,@body='內容啊'
,@body_format='TEXT'

--5.2發送附件
EXECsp_send_dbmail
@profile_name='dba_profile',
@recipients='[email protected]',
@subject='這是附件',
@file_attachments='G:亂七八糟sql.txt'

--5.3發送查詢結果
EXECsp_send_dbmail
@profile_name='dba_profile',
@recipients='[email protected]',
@subject='這是查詢',
@query='select*fromtest.dbo.apo_city'

--6.查看郵件發送情況
select*fromsysmail_allitems
select*fromsysmail_mailitems
select*fromsysmail_event_log

--7.刪除郵件配置
Execmsdb..sysmail_delete_profileaccount_sp
@profile_name='dba_profile',
@account_name='zhanghao'
Execmsdb..sysmail_delete_profile_sp
@profile_name='dba_profile'
Execmsdb..sysmail_delete_account_sp
@account_name='zhanghao'

5. 你好,我想問您一個問題,我在使用SQL Server 2008 R2運行存儲過程發送郵件的時候遇到了下面的錯誤。

這個是伺服器配置的問題:
你自己網路搜下: SQL Server 阻止了對組件 'Database Mail XPs' 的 過程 'dbo.sp_send_dbmail' 的訪問
這里不方便發URL。按教程進行配置