適用於:SQL Server
使用 [Database Mail 設定精靈] 或 Transact-SQL,建立 Database Mail 公用和私人設定檔。 如需郵件配置檔的詳細資訊,請參閱 Database Mail 組態物件。
小提示
在 Azure SQL 受控實例中,不需要建立資料庫郵件配置檔,此實例已設定為尋找名為 AzureManagedInstance_dbmail_profile的配置檔。 如需詳細資訊和範例指令碼,請參閱 Azure SQL 受控執行個體 SQL Agent 作業通知。
必要條件
替該設定檔建立一個或多個 Database Mail 帳戶。 如需建立 Database Mail 帳戶的詳細資訊,請參閱 建立 Database Mail 帳戶。
安全性
公用設定檔可以讓任何可存取 msdb 資料庫的使用者使用該設定檔來傳送電子郵件。 使用者或角色可以使用私人設定檔。 將角色權限授予設定檔存取權限可創建更易於維護的架構。 您必須是 msdb 資料庫中之 msdb 的成員,而且至少可以存取一個 Database Mail 設定檔,才能傳送郵件。
權限
建立設定檔帳戶以及執行預存程序的使用者,應該是系統管理員 (sysadmin) 固定伺服器角色的成員。
使用 Database Mail 組態精靈建立 Database Mail 配置檔
下列步驟使用 SQL Server Management Studio (SSMS)。 在 aka.ms/ssms 下載最新版 SSMS。
在 物件瀏覽器 中,連接到您要設定資料庫郵件的 SQL Server 實例,然後展開伺服器樹狀結構。
展開 管理 節點。
按兩下 [Database Mail ] 以開啟 [Database Mail 組態精靈]。
在 [選取組態工作] 頁面上,選取 [管理 Database Mail 帳戶和設定檔] 選項,然後選取 [下一步]。
在 [管理設定檔和帳戶] 頁面上,選取 [建立新設定檔] 選項,然後選取 [下一步]。
在 [新增設定檔] 頁面上,指定設定檔名稱、描述並新增要併入設定檔中的帳戶,然後選取 [下一步]。
在 [完成精靈] 頁面上,檢閱要執行的動作,然後選取 [完成] 完成新設定檔的建立。
設定 Database Mail 私人配置檔
開啟 [Database Mail 組態精靈]。
在 [選取組態工作] 頁面上,選取 [管理 Database Mail 帳戶和設定檔] 選項,然後選取 [下一步]。
在 [管理設定檔和帳戶] 頁面上,選取 [管理設定檔安全性] 選項,然後選取 [下一步]。
在 [私人設定檔] 索引標籤中,為您想要設定的設定檔選取其核取方塊,然後選取 [下一步]。
在 [完成精靈] 頁面上,檢閱要執行的動作,然後選取 [完成] 完成設定檔的設定。
設定 Database Mail 公用設定檔
開啟 [Database Mail 組態精靈]。
在 [選取組態工作] 頁面上,選取 [管理 Database Mail 帳戶和設定檔] 選項,然後選取 [下一步]。
在 [管理設定檔和帳戶] 頁面上,選取 [管理設定檔安全性] 選項,然後選取 [下一步]。
在 [公用設定檔] 索引標籤中,為您想要設定的設定檔選取其核取方塊,然後選取 [下一步]。
在 [完成精靈] 頁面上,檢閱要執行的動作,然後選取 [完成] 完成設定檔的設定。
使用 Transact-SQL 建立資料庫郵件設定檔
若要在 SQL Server 實例上執行 T-SQL 命令,請使用 SQL Server Management Studio (SSMS)、Visual Studio Code、sqlcmd 或您最愛的 T-SQL 查詢工具的 MSSQL 擴充功能。
使用 T-SQL 建立私人資料庫郵件設定檔
連線到 SQL Server 執行個體。 開啟新的查詢視窗。
若要建立新的設定檔,請執行系統預存程式 sysmail_add_profile_sp:
EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'Profile Name' , @description = 'Description';在上一個腳本中,
@profile_name是配置檔的名稱,而且@description是配置檔的選擇性易記描述。針對每個帳戶,執行系統預存程式 sysmail_add_profileaccount_sp:
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Profile Name' , @account_name = 'Name of the account' , @sequence_number = 'sequence number of the account within the profile.';在先前的範例腳本中,
@profile_name是配置檔的名稱,而@account_name是要新增至配置檔的帳戶名稱,@sequence_number會決定帳戶在配置檔中使用的順序。針對使用此設定檔傳送郵件的每個資料庫角色或使用者,授與設定檔的存取權。 若要這樣做,請執行系統預存程式 sysmail_add_principalprofile_sp:
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'Name of the profile' , @principal_name = 'Name of the database user or role' , @is_default = 'Default profile enabled';在先前的範例文本中,
@profile_name是配置檔的名稱、@principal_name資料庫使用者或角色的名稱,並@is_default判斷此配置檔是否為資料庫使用者或角色的預設值。
下列範例會建立 Database Mail 帳戶、建立 Database Mail 私人設定檔,然後將帳戶加入設定檔,並將設定檔的存取權授與 資料庫中的 msdb 資料庫角色。
-- 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 ;
使用 T-SQL 建立資料庫郵件公用設定檔
連線到 SQL Server 執行個體。 開啟新的查詢視窗。
若要建立新的設定檔,請執行系統預存程式 sysmail_add_profile_sp (Transact-SQL):
EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'Profile Name' , @description = 'Description';在上一個腳本中,
@profile_name是配置檔的名稱,而且@description是配置檔的選擇性描述。針對每個帳戶,執行預存程式 sysmail_add_profileaccount_sp (Transact-SQL):
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Name of the profile' , @account_name* = 'Name of the account' , @sequence_number* = 'sequence number of the account within the profile.'在先前的範例腳本中,
@profile_name是配置檔的名稱,而@account_name是要新增至配置檔的帳戶名稱,@sequence_number會決定帳戶在配置檔中使用的順序。若要授與公用存取權,請執行預存程式 sysmail_add_principalprofile_sp (Transact-SQL):
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'Name of the profile' , @principal_name = 'public or 0' , @is_default = 'Default Profile enabled';在先前的範例文本中,
@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 ;