適用於:SQL Server
變更現有 Database Mail 帳戶中的資訊。
語法
dbo.sysmail_update_account_sp
[ [ @account_id = ] account_id ]
[ , [ @account_name = ] N'account_name' ]
[ , [ @email_address = ] N'email_address' ]
[ , [ @display_name = ] N'display_name' ]
[ , [ @replyto_address = ] N'replyto_address' ]
[ , [ @description = ] N'description' ]
[ , [ @mailserver_name = ] N'mailserver_name' ]
[ , [ @mailserver_type = ] N'mailserver_type' ]
[ , [ @port = ] port ]
[ , [ @username = ] N'username' ]
[ , [ @password = ] N'password' ]
[ , [ @use_default_credentials = ] use_default_credentials ]
[ , [ @enable_ssl = ] enable_ssl ]
[ , [ @timeout = ] timeout ]
[ , [ @no_credential_change = ] no_credential_change ]
[ ; ]
引數
[ @account_id = ] account_id
要更新的帳戶標識碼。
@account_id 為 int,預設值為 NULL。 至少必須指定一個 @account_id 或 @account_name 。 如果同時指定兩者,程式會變更帳戶的名稱。
[ @account_name = ] N'account_name'
要更新的帳戶名稱。 @account_name為 sysname。 至少必須指定一個 @account_id 或 @account_name 。 如果同時指定兩者,程式會變更帳戶的名稱。
[ @email_address = ] N'email_address'
要從中傳送郵件的新電子郵件位址。 此位址必須是因特網電子郵件位址。 位址中的伺服器名稱是 Database Mail 用來從此帳戶傳送郵件的伺服器。
@email_address為 nvarchar(128),預設值為 NULL。
[ @display_name = ] N'display_name'
要用於此帳戶之電子郵件訊息的新顯示名稱。 @display_name為 nvarchar(128),沒有預設值。
[ @replyto_address = ] N'replyto_address
要在此帳戶中電子郵件訊息的回復標頭中使用的新位址。 @replyto_address為 nvarchar(128),沒有預設值。
[ @description = ] N'description'
帳戶的新描述。
@description為 nvarchar(256),預設值為 NULL。
[ @mailserver_name = ] N'mailserver_name'
要用於此帳戶之 SMTP 郵件伺服器的新名稱。 執行 SQL Server 的電腦必須能夠將 @mailserver_name 解析為 IP 位址。 @mailserver_name為 sysname,沒有預設值。
[ @mailserver_type = ] N'mailserver_type'
郵件伺服器的新類型。
@mailserver_type為 sysname,沒有預設值。 僅支援的值 SMTP 。
[ @port = ] 港口
郵件伺服器的新埠號碼。 @port為 int,沒有預設值。
[ @username = ] N'username'
用來登入郵件伺服器的新用戶名稱。 @username為 sysname,沒有預設值。
[ @password = ] N'password'
用來登入郵件伺服器的新密碼。 @password為 sysname,沒有預設值。
[ @use_default_credentials = ] use_default_credentials
指定是否使用 SQL Server 資料庫引擎 服務的認證,將郵件傳送至 SMTP 伺服器。
@use_default_credentials為 bit,沒有預設值。 當此參數為 1 時,Database Mail 會使用 資料庫引擎 的認證。 當此參數為 0 時,Database Mail 會 使用 @username 和 @password ,在 SMTP 伺服器上進行驗證。 如果 @username 和 @password 為 NULL,則會使用匿名驗證。 指定此參數之前,請先洽詢 SMTP 系統管理員
[ @enable_ssl = ] enable_ssl
指定 Database Mail 是否使用傳輸層安全性 (TLS) 加密通訊,先前稱為安全套接字層 (SSL)。 如果您的 SMTP 伺服器上需要 TLS,請使用此選項。 @enable_ssl為 bit,沒有預設值。
[ @timeout = ] 暫停
單一電子郵件訊息的 Timeout 參數 SmtpClient.Send 。
@timeout以秒為單位,沒有預設值。
[ @no_credential_change = ] no_credential_change
僅供參考之用。 不支援。 我們無法保證未來的相容性。
傳回碼值
0 (成功) 或 1 (失敗)。
備註
指定帳戶名稱和帳戶標識碼時,預存程式除了更新帳戶的資訊之外,也會變更帳戶名稱。 變更帳戶名稱有助於更正帳戶名稱中的錯誤。
預存程式 sysmail_update_account_sp 位於 msdb 資料庫中,而且是由 dbo 架構所擁有。 如果目前的資料庫不是 msdb,則必須使用三部分名稱執行程式。
權限
您可以授與此 EXECUTE 程序的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。
範例
A。 變更帳戶的資訊
下列範例會更新 資料庫中的AdventureWorks Administrator帳戶msdb。 帳戶的信息會設定為所提供的值。
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,
@timeout = 60,
@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,
@timeout = 60,
@username = NULL,
@password = NULL,
@use_default_credentials = 0,
@enable_ssl = 0;