sysmail_add_account_sp (Transact-SQL)
適用於:SQL Server Azure 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 的電腦必須能夠將 @mailserver_name 解析為 IP 位址。 @mailserver_name為 sysname,沒有預設值。
[ @mailserver_type = ] 'server_type'
電子郵件伺服器的類型。 @mailserver_type為 sysname 預設值為 SMTP
。
[ @port = ] port_number
電子郵件伺服器的埠號碼。 @port為 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 資料庫引擎 的認證,將郵件傳送至 SMTP 伺服器。 @use_default_credentials為 bit,預設值為 0
。 當此參數為 1
時,Database Mail 會使用 資料庫引擎 的認證。 當此參數為 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參數是電子郵件訊息欄位中顯示From:
的名稱。 @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參數支援 值 SMTP
。
當 @use_default_credentials 為 1
時,會使用 SQL Server 資料庫引擎 的認證,將郵件傳送至 SMTP 伺服器。 當 @use_default_credentials 為 0
,且 針對帳戶指定了@username 和 @password 時,帳戶會使用 SMTP 驗證。 @username和@password是帳戶用於 SMTP 伺服器的認證,而不是 SQL Server 的認證或電腦所開啟的網路認證。
預存程式 sysmail_add_account_sp
位於 msdb
資料庫中,而且是由 dbo
架構所擁有。 如果目前的資料庫不是 msdb
,則必須使用三部分名稱執行程式。
權限
您可以授與此 EXECUTE
程序的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。
範例
下列範例會建立名為的 AdventureWorks Administrator
帳戶。 此帳號會使用電子郵件位址 dba@adventure-works.com
,並將郵件傳送至 SMTP 郵件伺服器 smtp.adventure-works.com
。 從此帳戶傳送的電子郵件訊息會顯示 AdventureWorks Automated Mailer
在 From:
郵件行上。 回覆訊息會導向至 danw@adventure-works.com
。
EXEC 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';