---
description: "Create a Database Mail Profile"
title: "Create a Database Mail Profile | Microsoft Docs"
ms.custom: ""
ms.date: "08/01/2016"
ms.prod: sql
ms.prod_service: "database-engine"
ms.reviewer: ""
ms.technology:
ms.topic: conceptual
helpviewer_keywords:
- "Database Mail [SQL Server], public profiles"
- "profiles [SQL Server], Database Mail"
- "public profiles [Database Mail]"
ms.assetid: 58ae749d-6ada-4f9c-bf00-de7c7a992a2d
author: stevestein
ms.author: sstein
---
# Create a Database Mail Profile
[!INCLUDE [SQL Server SQL MI](../../includes/applies-to-version/sql-asdbmi.md)]
Use either the **Database Mail Configuration Wizard** or [!INCLUDE[tsql](../../includes/tsql-md.md)] to create Database Mail public and private profiles. For more information about mail profiles see [Database Mail Profile](database-mail-configuration-objects.md).
- **Before you Begin:** [Prerequisites](#Prerequisites), , [Security](#Security)
- **To Create a Database Mail private profile using:** [Database Mail Configuration Wizard](#SSMSProcedure), [Transact-SQL](#PrivateProfile)
- **To Create a Database Mail public profile using:** [Database Mail Configuration Wizard](#SSMSProcedure), [Transact-SQL](#PublicProfile)
## Before You Begin
### Prerequisites
Create one or more Database Mail accounts for the profile. For more information about creating Database Mail accounts, see [Create a Database Mail Account](../../relational-databases/database-mail/create-a-database-mail-account.md).
### Security
A public profile allows any user with access to the **msdb** database to send e-mail using that profile. A private profile can be used by a user or by a role. Granting roles access to profiles creates a more easily maintained architecture. To send mail you must be a member of the **DatabaseMailUserRole** in the **msdb** database, and have access to at least one Database Mail profile.
#### Permissions
The user creating the profiles accounts and executing stored procedures should be a member of the sysadmin fixed server role.
## Using Database Mail Configuration Wizard
**To Create a Database Mail profile**
- In Object Explorer, connect to the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] instance you want to configure Database Mail on, and expand the server tree.
- Expand the **Management** node
- Double click Database Mail to open the Database Mail Configuration Wizard.
- On the **Select Configuration Task** page, select **Manage Database Mail accounts and profiles** option and click **Next**.
- On the **Manage Profiles and Accounts** page, select **Create a new profile** option, and click **Next**.
- On the **New Profile** page, specify the Profile name, Description and add accounts to be included in the profile, and click **Next**.
- On the **Complete the Wizard** page, review the actions to be performed and click **Finish** to complete creating the new profile.
- **To configure a Database Mail private profile:**
- Open the Database Mail Configuration Wizard.
- On the **Select Configuration Task** page, select **Manage Database Mail accounts and profiles** option, and click **Next**.
- On the **Manage Profiles and Accounts** page, select **Manage profile security** option and click **Next**.
- In the **Private Profiles** tab, select the check box for the profile you would like to configure and click **Next**.
- On the **Complete the Wizard** page, review the actions to be performed and click **Finish** to complete configuring the profile.
- **To configure a Database Mail public profile:**
- Open the Database Mail Configuration Wizard.
- On the **Select Configuration Task** page, select **Manage Database Mail accounts and profiles** option, and click **Next**.
- On the **Manage Profiles and Accounts** page, select **Manage profile security** option and click **Next**.
- In the **Public Profiles** tab, select the check box for the profile you would like to configure and click **Next**.
- On the **Complete the Wizard** page, review the actions to be performed and click **Finish** to complete configuring the profile.
## Using Transact-SQL
### To Create a Database Mail private profile
- Connect to the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] instance.
- To create a new profile, run the system stored procedure [sysmail_add_profile_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql.md) as follows:
**EXECUTEmsdb.dbo.sysmail_add_profile_sp**
*\@profile_name* = '*Profile Name*'
*\@description* = '*Desciption*'
where *\@profile_name* is the name of the profile, and *\@description* is the description of the profile. This parameter is optional.
- For each account, run the stored procedure [sysmail_add_profileaccount_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql.md) as follows:
**EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp**
*\@profile_name* = '*Name of the profile*'
*\@account_name* = '*Name of the account*'
*\@sequence_number* = '*sequence number of the account within the profile.* '
where *\@profile_name* is the name of the profile, and *\@account_name* is the name of the account to add to the profile, *\@sequence_number* determines the order in which the accounts are used in the profile.
- For each database role or user that will send mail using this profile, grant access to the profile. To do this, run the stored procedure [sysmail_add_principalprofile_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql.md) as follows:
**EXECUTEmsdb.sysmail_add_principalprofile_sp**
*\@profile_name* = '*Name of the profile*'
*\@ principal_name* = '*Name of the database user or role*'
*\@is_default* = '*Default Profile status* '
where *\@profile_name* is the name of the profile, and *\@principal_name* is the name of the database user or role, *\@is_default* determines the whether this profile is the default for the database user or role.
The following example creates a Database Mail account, creates a Database Mail private profile, then adds the account to the profile and grants access to the profile to the **DBMailUsers** database role in the **msdb** database.
```
-- 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 ;
```
### To Create a Database Mail public profile
- Connect to the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] instance.
- To create a new profile, run the system stored procedure [sysmail_add_profile_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql.md) as follows:
**EXECUTEmsdb.dbo.sysmail_add_profile_sp**
*\@profile_name* = '*Profile Name*'
*\@description* = '*Desciption*'
where *\@profile_name* is the name of the profile, and *\@description* is the description of the profile. This parameter is optional.
- For each account, run the stored procedure [sysmail_add_profileaccount_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql.md) as follows:
**EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp**
*\@profile_name* = '*Name of the profile*'
*\@account_name* = '*Name of the account*'
*\@sequence_number* = '*sequence number of the account within the profile.* '
where *\@profile_name* is the name of the profile, and *\@account_name* is the name of the account to add to the profile, *\@sequence_number* determines the order in which the accounts are used in the profile.
- To grant public access, run the stored procedure [sysmail_add_principalprofile_sp (Transact-SQL)](../../relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql.md) as follows:
**EXECUTEmsdb.sysmail_add_principalprofile_sp**
*\@profile_name* = '*Name of the profile*'
*\@ principal_name* = '**public** or **0**'
*\@is_default* = '*Default Profile status* '
where *\@profile_name* is the name of the profile, and *\@principal_name* to indicate this is a public profile, *\@is_default* determines the whether this profile is the default for the database user or role.
The following example creates a Database Mail account, creates a Database Mail private profile, then adds the account to the profile and grants public access to the profile.
```
-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'AdventureWorks Public Account',
@description = 'Mail account for use by all database users.',
@email_address = 'db_users@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 Public Profile',
@description = 'Profile used for administrative mail.' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'AdventureWorks Public Profile',
@account_name = 'AdventureWorks Public Account',
@sequence_number =1 ;
-- Grant access to the profile to all users in the msdb database
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'AdventureWorks Public Profile',
@principal_name = 'public',
@is_default = 1 ;
```