使用 [Database Mail 設定精靈] 或 Transact-SQL,建立 Database Mail 公用和私人設定檔。
開始之前
先決條件
替該設定檔建立一個或多個 Database Mail 帳戶。 如需建立 Database Mail 帳戶的詳細資訊,請參閱 建立 Database Mail 帳戶。
安全
公用配置檔可讓任何具有 msdb 資料庫存取權的使用者使用該配置檔傳送電子郵件。 使用者或角色可以使用私人設定檔。 將角色權限授予設定檔存取權限可創建更易於維護的架構。 若要傳送郵件,您必須是 msdb 資料庫中 DatabaseMailUserRole 的成員,而且至少可以存取一個 Database Mail 配置檔。
權限
建立設定檔帳戶以及執行預存程序的使用者,應該是系統管理員 (sysadmin) 固定伺服器角色的成員。
使用 Database Mail 組態精靈
建立資料庫郵件設定檔
在 [物件總管] 中,連線到想要在其上設定 Database Mail 的 SQL Server 執行個體,並展開伺服器樹狀目錄。
展開 管理 節點。
按兩下 [Database Mail] 以開啟 [Database Mail 組態精靈]。
在 [ 選取設定工作 ] 頁面上,選取 [管理 Database Mail 帳戶和配置檔 ] 選項,然後按 [ 下一步]。
在 [ 管理配置文件和帳戶] 頁面上,選取 [建立新的配置檔 ] 選項,然後按 [ 下一步]。
在 [ 新增配置檔] 頁面上,指定要包含在配置檔中的配置檔名稱、描述和新增帳戶,然後按 [ 下一步]。
在 [ 完成精靈 ] 頁面上,檢閱要執行的動作,然後按兩下 [ 完成 ] 以完成建立新的配置檔。
若要設定 Database Mail 個人設定檔:
開啟 [Database Mail 組態精靈]。
在 [ 選取設定工作 ] 頁面上,選取 [管理 Database Mail 帳戶和配置檔 ] 選項,然後按 [ 下一步]。
在 [ 管理配置文件和帳戶] 頁面上,選取 [ 管理配置檔安全性 ] 選項,然後按 [ 下一步]。
在 [ 私人配置檔] 索引標籤中,選取您要設定之配置檔的複選框,然後按 [ 下一步]。
在 [ 完成精靈 ] 頁面上,檢閱要執行的動作,然後按兩下 [ 完成 ] 完成配置文件的設定。
若要設定資料庫郵件的公用設定檔:
開啟 [Database Mail 組態精靈]。
在 [ 選取設定工作 ] 頁面上,選取 [管理 Database Mail 帳戶和配置檔 ] 選項,然後按 [ 下一步]。
在 [ 管理配置文件和帳戶] 頁面上,選取 [ 管理配置檔安全性 ] 選項,然後按 [ 下一步]。
在 [ 公用配置檔] 索引標籤中,選取您要設定之配置檔的複選框,然後按 [ 下一步]。
在 [ 完成精靈 ] 頁面上,檢閱要執行的動作,然後按兩下 [ 完成 ] 完成配置文件的設定。
使用 Transact-SQL
建立資料庫郵件私人配置檔
連線到 SQL Server 執行個體。
若要建立新的設定檔,請執行系統預存程序 sysmail_add_profile_sp (Transact-SQL),如下所示:
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'Profile Name'
@description = '描述'
其中 @profile_name 是設定檔的名稱, @description 是配置檔的描述。 這是選擇性參數。
針對每個帳戶,執行預存程序 sysmail_add_profileaccount_sp (Transact-SQL),如下所示:
EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp
@profile_name = '配置檔的名稱'
@account_name = '帳戶名稱'
@sequence_number = 設定檔中帳戶的序號。 '
其中 @profile_name 是配置檔的名稱, @account_name 是要新增至配置檔的帳戶名稱, @sequence_number 會決定配置檔中使用帳戶的順序。
針對使用此設定檔傳送郵件的每個資料庫角色或使用者,授與設定檔的存取權。 作法是執行預存程序 sysmail_add_principalprofile_sp (Transact-SQL),如下所示:
EXECUTEmsdb.sysmail_add_principalprofile_sp
@profile_name = '配置檔的名稱'
@ principal_name = '資料庫使用者或角色的名稱'
@is_default = '預設檔案狀態'
其中 @profile_name 是設定檔的名稱, @principal_name 是資料庫使用者或角色的名稱, @is_default 會決定此配置檔是否為資料庫使用者或角色的預設值。
下列範例會建立 Database Mail 帳戶、建立 Database Mail 私人設定檔,然後將帳戶新增至配置檔,並將配置檔的存取權授與 msdb 資料庫中的 DBMailUsers 資料庫角色。
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Administrator',
@description = 'Mail account for administrative e-mail.',
@email_address = 'dba@Adventure-Works.com',
@replyto_address = 'danw@Adventure-Works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.Adventure-Works.com' ;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'AdventureWorks Administrator Profile',
@description = 'Profile used for administrative mail.' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AdventureWorks Administrator Profile',
@account_name = 'AdventureWorks Administrator',
@sequence_number =1 ;
-- Grant access to the profile to the DBMailUsers role
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'AdventureWorks Administrator Profile',
@principal_name = 'ApplicationUser',
@is_default = 1 ;
建立 Database Mail 公用配置檔
連線到 SQL Server 執行個體。
若要建立新的設定檔,請執行系統預存程序 sysmail_add_profile_sp (Transact-SQL),如下所示:
EXECUTEmsdb.dbo.sysmail_add_profile_sp
@profile_name = 'Profile Name'
@description = '描述'
其中 @profile_name 是設定檔的名稱, @description 是配置檔的描述。 這是選擇性參數。
針對每個帳戶,執行預存程序 sysmail_add_profileaccount_sp (Transact-SQL),如下所示:
EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp
@profile_name = '名稱'
@account_name = '帳戶名稱'
@sequence_number = 設定檔中帳戶的序號。 '
其中 @profile_name 是配置檔的名稱, @account_name 是要新增至配置檔的帳戶名稱, @sequence_number 會決定配置檔中使用帳戶的順序。
若要授與公用存取權,請執行預存程序 sysmail_add_principalprofile_sp (Transact-SQL),如下所示:
EXECUTEmsdb.sysmail_add_principalprofile_sp
@profile_name = '配置檔的名稱'
@ principal_name = 'public or 0'
@is_default = '預設個人資料狀態'
其中 @profile_name 是設定檔的名稱,@principal_name 表示這是公開設定檔,@is_default 決定該設定檔是否為資料庫使用者或角色的預設。
下列範例會建立 Database Mail 帳戶、建立 Database Mail 私人設定檔,然後將帳戶加入設定檔,並授與設定檔的公用存取權。
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Public Account',
@description = 'Mail account for use by all database users.',
@email_address = 'db_users@Adventure-Works.com',
@replyto_address = 'danw@Adventure-Works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.Adventure-Works.com' ;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'AdventureWorks Public Profile',
@description = 'Profile used for administrative mail.' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AdventureWorks Public Profile',
@account_name = 'AdventureWorks Public Account',
@sequence_number =1 ;
-- Grant access to the profile to all users in the msdb database
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'AdventureWorks Public Profile',
@principal_name = 'public',
@is_default = 1 ;