sysmail_add_account_sp (Transact-SQL)
建立新的 Database Mail 帳戶來保留 SMTP 帳戶的相關資訊。
語法
sysmail_add_account_sp [ @account_name = ] 'account_name',
[ @email_address = ] 'email_address' ,
[ [ @display_name = ] 'display_name' , ]
[ [ @replyto_address = ] 'replyto_address' , ]
[ [ @description = ] 'description' , ]
[ @mailserver_name = ] 'server_name'
[ , [ @mailserver_type = ] 'server_type' ]
[ , [ @port = ] port_number ]
[ , [ @username = ] 'username' ]
[ , [ @password = ] 'password' ]
[ , [ @use_default_credentials = ] use_default_credentials ]
[ , [ @enable_ssl = ] enable_ssl ]
[ , [ @account_id = ] account_id OUTPUT ]
引數
[@account_name = ] 'account_name'
這是要加入的帳戶名稱。account_name 是 sysname,沒有預設值。[@email_address = ] 'email_address'
傳送訊息的來源電子郵件地址。這個地址必須是網際網路電子郵件地址。email_address 是 nvarchar(128),沒有預設值。例如,SQL Server Agent 的帳戶可能會從 SqlAgent@Adventure-Works.com 地址傳送電子郵件。[@display_name = ] 'display_name'
這個帳戶發出的電子郵件訊息所用的顯示名稱。display_name 是 nvarchar(128),預設值是 NULL。例如,SQL Server Agent 的帳戶在電子郵件訊息上顯示的名稱可能會是 SQL Server Agent Automated Mailer。[@replyto_address = ] 'replyto_address'
這是對這個帳戶訊息所做回應傳送所至的地址。replyto_address 是 nvarchar(128),預設值是 NULL。例如,回覆給 SQL Server Agent 帳戶的郵件,可能會傳送給資料庫管理員 danw@Adventure-Works.com。[@description = ] 'description'
這是帳戶的描述。description 是 nvarchar(256),預設值是 NULL。[@mailserver_name = ] 'server_name'
這個帳戶要用的 SMTP 郵件伺服器的名稱或 IP 位址。執行 SQL Server 的電腦必須能夠將 server_name 解析成 IP 位址。server_name 是 sysname,沒有預設值。[@mailserver_type = ] 'server_type'
電子郵件伺服器的類型。server_type 是 sysname,預設值是 'SMTP'。[@port = ] port_number
電子郵件伺服器的通訊埠編號。port_number 是 int,預設值是 25。[@username = ] 'username'
用來登入電子郵件伺服器的使用者名稱。username 是 nvarchar(128),預設值是 NULL。當這個參數是 NULL 時,Database Mail 不會在這個帳戶上使用驗證。如果郵件伺服器不需要驗證,使用者名稱便使用 NULL。[@password = ] 'password'
用來登入電子郵件伺服器的密碼。password 是 nvarchar(128),預設值是 NULL。除非指定了使用者名稱,否則,不需要提供密碼。[@use_default_credentials = ] use_default_credentials
指定是否要使用 SQL Server Database Engine 的認證將郵件傳送至 SMTP 伺服器。use_default_credentials 是位元,預設值為 0。當此參數是 1 時,Database Mail 會使用 Database Engine 的認證。若此參數是 0,Database Mail 會傳送 @username 和 @password 參數 (如果有的話),否則會傳送不含 @username 和 @password 參數的郵件。[@enable_ssl = ] enable_ssl
指定 Database Mail 是否使用安全通訊端層加密通訊。Enable_ssl 是 bit,預設值是 0。[@account_id = ] account_id OUTPUT
傳回新帳戶的帳戶識別碼。account_id 是 int,預設值是 NULL。
傳回碼值
0 (成功) 或 1 (失敗)
備註
Database Mail 會分別提供 @email_address、@display_name 和 @replyto_address 的參數。@email_address 參數是傳送訊息的來源地址。@display_name 參數是電子郵件訊息的 [寄件者:]欄位所顯示的名稱。@replyto_address 參數是電子郵件訊息的回應所要送往的地址。例如,SQL Server Agent 所用的帳戶,可以從只供 SQL Server Agent 使用的電子郵件地址傳送電子郵件訊息。這個地址所送出的訊息應該會顯示易記名稱,使收件者能夠輕鬆判斷是 SQL Server Agent 送出訊息。如果收件者回應訊息,這個回應應該會送給資料庫管理員,而不是 SQL Server Agent 所用的地址。在這個狀況中,帳戶會利用 SqlAgent@Adventure-Works.com 來作為電子郵件地址。顯示名稱設為 SQL Server Agent Automated Mailer。此帳戶會使用 danw@Adventure-Works.com 來當做回應地址,因此,這個帳戶所送出之訊息的回應會送給資料庫管理員,而不是 SQL Server Agent 的電子郵件地址。Database Mail 分別提供這三個參數的獨立設定,因此,您可以依照需要來設定訊息。
提供 @mailserver_type 參數,是為了使未來的版本更加靈活。SQL Server 2005 及更新的版本可支援對 @mailserver_type 使用 'SMTP'。
當 @use_default_credentials 是 1 時,郵件會使用 SQL Server Database Engine 的認證傳送至 SMTP 伺服器。當 @use_default_credentials 是 0 時,且有指定帳戶的 @username 和 @password,則帳戶會使用 SMTP 驗證。@username 和 @password 是帳戶在 SMTP 伺服器上所用的認證,而不是 SQL Server 或電腦所在網路的認證。
預存程序 sysmail_add_account_sp 在 msdb 資料庫中,擁有者是 dbo 結構描述。如果目前的資料庫不是 msdb,就必須利用三部分名稱來執行這個程序。
權限
這個程序的執行權限預設會授與系統管理員 (sysadmin) 固定伺服器角色的成員。
範例
下列範例會建立名稱為 AdventureWorks Administrator 的帳戶。這個帳戶所用的電子郵件地址是 dba@Adventure-Works.com,它將郵件傳給 SMTP 郵件伺服器 smtp.Adventure-Works.com。從這個帳戶傳送的電子郵件訊息會在訊息的 [寄件者:] 欄位上顯示 AdventureWorks Automated Mailer。訊息的回應會導向 danw@Adventure-Works.com。
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Administrator',
@description = 'Mail account for administrative e-mail.',
@email_address = 'dba@Adventure-Works.com',
@display_name = 'AdventureWorks Automated Mailer',
@mailserver_name = 'smtp.Adventure-Works.com' ;