共用方式為


sysmail_update_account_sp (Transact-SQL)

變更現有 Database Mail 帳戶中的資訊。

主題連結圖示Transact-SQL 語法慣例

語法

sysmail_update_account_sp [ [ @account_id = ] account_id ] [ , ] [ [ @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 ,
    [ @no_credential_change = ] changes to username and password ,
    [ @enable_ssl = ] enable_ssl 

引數

  • [ @account_id = ] account_id
    這是要更新的帳戶識別碼。account_id 是 int,預設值是 NULL。您必須至少指定 account_id 或 account_name 其中之一。如果同時指定這兩者,程序會變更帳戶的名稱。

  • [ @account_name = ] 'account_name'
    這是要更新的帳戶名稱。account_name 是 sysname,預設值是 NULL。您必須至少指定 account_id 或 account_name 其中之一。如果同時指定這兩者,程序會變更帳戶的名稱。

  • [ @email_address = ] 'email_address'
    這是傳送訊息的新來源電子郵件地址。這個地址必須是網際網路電子郵件地址。地址中的伺服器名稱是 Database Mail 用來從這個帳戶傳送郵件的伺服器。email_address 是 nvarchar(128),預設值是 NULL。

  • [ @display_name = ] 'display_name'
    這個帳戶發出的電子郵件訊息所用的新顯示名稱。display_name 是 nvarchar(128),沒有預設值。

  • [ @replyto_address = ] 'replyto_address'
    這個帳戶發出的電子郵件訊息之 [回覆至] 標頭中所用的新地址。replyto_address 是 nvarchar(128),沒有預設值。

  • [ @description = ] 'description'
    帳戶的新描述。description 是 nvarchar(256),預設值是 NULL。

  • [ @mailserver_name = ] 'server_name'
    這個帳戶要用的 SMTP 郵件伺服器的新名稱。執行 SQL Server 的電腦必須能夠將 server_name 解析成 IP 位址。server_name 是 sysname,沒有預設值。

  • [ @mailserver_type = ] 'server_type'
    郵件伺服器的新類型。server_type 是 sysname,沒有預設值。在 SQL Server 2005 及更新的版本中,只支援 'SMTP' 的值。

  • [ @port = ] port_number
    郵件伺服器的新通訊埠編號。port_number 是 int,沒有預設值。

  • [ @username = ] 'username'
    用來登入郵件伺服器的新使用者名稱。User name 是 sysname,沒有預設值。

  • [ @password = ] 'password'
    用來登入郵件伺服器的新密碼。password 是 sysname,沒有預設值。

  • [ @use_default_credentials = ] use_default_credentials
    指定是否使用 SQL Server Database Engine 服務的認證將郵件傳送至 SMTP 伺服器。use_default_credentials 是 bit,沒有預設值。當此參數是 1 時,Database Mail 會使用 Database Engine 的認證。當此參數是 0 時,Database Mail 會使用 @username@password 在 SMTP 伺服器上進行驗證。如果 @username@password 是 NULL,則它會使用匿名驗證。在指定此參數之前,請洽 SMTP 管理員。

  • [ @no_credential_change = ] 變更為使用者名稱和密碼
    指定是否要變更現有的認證 (使用者名稱和密碼)。此參數為 1 時,表示不變更認證,因此不需要 @username@password。此參數為 0 時,表示變更認證,因此必須提供 @username@password。此參數預設為包含 0 的位元。

  • [ @enable_ssl = ] enable_ssl
    指定 Database Mail 是否使用安全通訊端層 (SSL) 加密通訊。如果 SMTP 伺服器上需要 SSL,則使用此選項。enable_ssl 是 bit,沒有預設值。

傳回碼值

0 (成功) 或 1 (失敗)

備註

當同時指定帳戶名稱和帳戶識別碼時,除了更新帳戶資訊之外,預存程序還會變更帳戶名稱。在更正帳戶名稱的錯誤時,變更帳戶名稱可能會很有用。

@no_credential_change 參數可用來變更非使用基本驗證傳送電子郵件之帳戶的使用者名稱和密碼。例如,您可以指定 @no_credential_change = 1 來啟用 SSL,而不必提供使用者名稱和密碼。

預存程序 sysmail_update_account_spmsdb 資料庫中,擁有者是 dbo 結構描述。如果目前的資料庫不是 msdb,就必須利用三部分名稱來執行這個程序。

權限

需要系統管理員 (sysadmin) 固定伺服器角色的成員資格。

範例

A. 變更帳戶的資訊

下列範例會更新 msdb 資料庫中的 AdventureWorks Administrator 帳戶。帳戶資訊設成所提供的值。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_name = 'AdventureWorks Administrator'
    ,@description = 'Mail account for administrative e-mail.'
    ,@email_address = 'dba@Adventure-Works.com'
    ,@display_name = 'AdventureWorks Automated Mailer'
    ,@replyto_address = NULL
    ,@mailserver_name = 'smtp.Adventure-Works.com'
    ,@mailserver_type = 'SMTP'
    ,@port = 25
    ,@username = NULL
    ,@password = NULL
    ,@use_default_credentials = 0
    ,@enable_ssl = 0;

B. 變更帳戶名稱和帳戶資訊

下列範例會利用帳戶識別碼 125 來變更名稱及更新帳戶資訊。帳戶的新名稱是 Backup Mail Server。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_id = 125
    ,@account_name = 'Backup Mail Server'
    ,@description = 'Mail account for administrative e-mail.'
    ,@email_address = 'dba@Adventure-Works.com'
    ,@display_name = 'AdventureWorks Automated Mailer'
    ,@replyto_address = NULL
    ,@mailserver_name = 'smtp-backup.Adventure-Works.com'
    ,@mailserver_type = 'SMTP'
    ,@port = 25,
    ,@username = NULL
    ,@password = NULL
    ,@use_default_credentials = 0
    ,@enable_ssl = 0;

C. 使用 @no\_credential\_change 僅變更帳戶的 SSL

下列範例會變更帳戶識別碼 125 的 SSL 設定。其他所有帳戶資訊則維持不變。

EXECUTE msdb.dbo.sysmail_update_account_sp
    ,@account_id = 125
    ,@enable_ssl = 1
    ,@no_credential_change = 1;

如果沒有指定 @no\_credential\_change=1,則會將 NULL 值指派給 @username@password (除非有提供其值)。

變更記錄

更新的內容

新參數 @no_credential_change 的相關資訊已加入至<語法>、<引數>與<備註>這幾節。

已加入使用新參數 @no_credential_change 變更 SSL 設定的範例。