sysmail_add_account_sp (Transact-SQL)

Создает новую учетную запись компонента Database Mail, хранящую сведения об учетной записи SMTP.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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 может отправлять сообщения электронной почты с адреса SqlAgent@Adventure-Works.com.

  • [ @display_name = ] 'display_name'
    Имя, отображаемое при отправке сообщений электронной почты с этой учетной записи. Аргумент display_name имеет тип nvarchar(128) и значение по умолчанию NULL. Например, учетная запись агента SQL Server может в сообщениях в качестве имени отправителя указывать Автоматическая почта агента SQL Server.

  • [ @replyto_address = ] 'replyto_address'
    Обратный адрес сообщений, отправленных с этой учетной записи. Аргумент replyto_address имеет тип nvarchar(128) и значение по умолчанию NULL. Например, для ответов на сообщения, отправленные учетной записью агента SQL Server, может быть указан адрес администратора базы данных danw@Adventure-Works.com.

  • [ @description = ] 'description'
    Описание учетной записи. Аргумент description имеет тип nvarchar(256) и значение по умолчанию NULL.

  • [ @mailserver_name = ] 'server_name'
    Имя или IP-адрес почтового SMTP-сервера, который используется для этой учетной записи. Компьютер, на котором запущен 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
    Указывает, посылать ли почту серверу SMTP с помощью учетных данных компонента SQL Server Database Engine. Аргумент use_default_credentials имеет тип bit и значение по умолчанию 0. Если этот параметр равен 1, компонент Database Mail использует учетные данные компонента Database Engine. Если этот параметр равен 0, компонент Database Mail передает параметры @username и @password, если они представлены, в противном случае почта пересылается без параметров @username и @password.

  • [ @enable_ssl = ] enable_ssl
    Определяет, шифрует ли компонент Database Mail передаваемые данные с помощью протокола Secure Sockets Layer. Аргумент 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, может отправлять сообщения электронной почты с адреса, используемого только агентом SQL Server. Сообщения с этого адреса должны отображать понятные имена, таким образом получатели могут легко определить, что сообщение отправлено агентом SQL Server. Если получатель отвечает на сообщение, ответ должен быть доставлен администратору базы данных, а не на адрес агента SQL Server. В этом случае учетная запись использует в качестве адреса электронной почты SqlAgent@Adventure-Works.com. Имя, отображаемое на экране, равно SQL Server Agent Automated Mailer. В качестве обратного адреса учетная запись использует danw@Adventure-Works.com. Таким образом, ответы на сообщения, отправленные с этой учетной записи, доставляются администратору базы данных, а не на адрес агента SQL Server. С помощью указания независимых значений для этих трех параметров компонент Database Mail позволяет настраивать сообщения так, как необходимо.

Параметр @mailserver_type предназначен для обеспечения гибкости в будущих версиях. В SQL Server 2005 и более поздних версиях для параметра @mailserver_type предусмотрена поддержка значения 'SMTP'.

Если аргумент @use_default_credentials равен 1, почта посылается на сервер SMTP с использованием учетных данных компонента SQL Server Database Engine. Если аргумент @use_default_credentials равен 0 и указаны значения аргументов @username и @password для учетной записи, учетная запись использует проверку подлинности SMTP. Аргументы @username и @password — это учетные данные, используемые учетной записью для SMTP-сервера, а не для SQL Server или сети, в которой находится компьютер.

Хранимая процедура sysmail_add_account_sp находится в базе данных msdb и принадлежит схеме dbo. Если текущей базой данных является не msdb, процедуру следует выполнять с трехкомпонентным именем.

Разрешения

По умолчанию разрешения на выполнение этой процедуры имеют члены предопределенной роли sysadmin сервера.

Примеры

В следующем примере создается учетная запись с именем AdventureWorks2008R2 Administrator. Эта учетная запись использует адрес электронной почты dba@Adventure-Works.com и посылает почту на почтовый SMTP-сервер smtp.Adventure-Works.com. Сообщения электронной почты, посланные с этой учетной записи, отображают имя AdventureWorks2008R2 Automated Mailer в поле От: сообщения. Ответы на сообщения направляются по адресу danw@Adventure-Works.com.

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'AdventureWorks2008R2 Administrator',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'dba@Adventure-Works.com',
    @display_name = 'AdventureWorks2008R2 Automated Mailer',
    @mailserver_name = 'smtp.Adventure-Works.com' ;