Поделиться через


Как создать личные профили компонента Database Mail (Transact-SQL)

Для создания личных профилей компонента Database Mail для пересылки почты по SMTP, воспользуйтесь мастером настройки Database Mail или хранимыми процедурами Database Mail. Персональный профиль может использоваться как пользователем, так и ролью. Предоставление роли доступа к профилю создает более простую обслуживаемую архитектуру.

Создание профиля компонента Database Mail при помощи Transact-SQL

  1. Создайте одну или несколько учетных записей компонента Database Mail для профиля. Дополнительные сведения о создании учетных записей компонента Database Mail см. в разделе Как создавать учетные записи для компонента Database Mail (язык Transact-SQL).

  2. Выполните хранимую процедуру msdb.dbo.sysmail_add_profile_sp для создания профиля, указав:

    • имя создаваемого профиля;

    • необязательное описание профиля.

  3. Для каждой учетной записи выполните процедуру msdb.dbo.sysmail_add_profileaccount_sp, чтобы добавить учетную запись к профилю.

  4. Для каждой роли или пользователя базы данных, которые будут посылать почту при помощи данного профиля, предоставьте доступ к профилю путем выполнения процедуры msdb.sysmail_add_principalprofile_sp.

Пример

Ниже приведен пример создания учетной записи и профиля компонента Database Mail. Затем в данном примере добавляется учетная запись к профилю и предоставляется доступ к профилю для роли базы данных DBMailUsers в базе данных msdb.

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

-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'AdventureWorks Administrator Profile',
    @description = 'Profile used for administrative mail.' ;

-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'AdventureWorks Administrator Profile',
    @account_name = 'AdventureWorks Administrator',
    @sequence_number =1 ;

-- Grant access to the profile to the DBMailUsers role
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'AdventureWorks Administrator Profile',
    @principal_name = 'ApplicationUser',
    @is_default = 1 ;