Published on

January 13, 2020

Step by Step Guide to Configure Database Mail in SQL Server Express Edition

SQL Server Express edition does not provide the SQL Server Agent Services, which means we cannot perform Database Mail configuration or SQL Jobs or maintenance plans using SQL Server Management Studio. However, we can still configure the Database Mail feature in the SQL Server Express edition using CLR integration or stored procedures within the MSDB database.

To perform the Database Mail configuration, we will be using the following stored procedures of the MSDB database:

  • msdb.dbo.sysmail_add_profile_sp: This stored procedure adds a database mail profile in SQL Server.
  • msdb.dbo.sysmail_add_account_sp: This stored procedure is used to add a database mail account.
  • msdb.dbo.sysmail_add_profileaccount_sp: This stored procedure is used to add the database mail account to the database mail profile.
  • msdb.dbo.sp_send_dbmail: This stored procedure is used to send the database mail to one or more recipients.

Let’s go through the steps to configure Database Mail in SQL Server Express edition:

Step 1: Create Database Mail Account

First, we need to create a database mail account. Execute the following query in the MSDB database:

USE MSDB;
IF NOT EXISTS (SELECT * FROM msdb.dbo.sysmail_account WHERE name = 'SQLServer Express')
BEGIN
  EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'SQLServer Express',
    @email_address = 'your_email_address',
    @display_name = 'SQL Server Database Mail',
    @replyto_address = '',
    @description = '',
    @mailserver_name = 'smtp.office365.com',
    @mailserver_type = 'SMTP',
    @port = '587',
    @username = 'your_username',
    @password = 'your_password',
    @use_default_credentials = 0,
    @enable_ssl = 1;
END;

Step 2: Create Database Mail Profile

Next, we need to create a database mail profile. Execute the following query in the MSDB database:

USE MSDB;
IF NOT EXISTS (SELECT * FROM msdb.dbo.sysmail_profile WHERE name = 'SQLServer Express Edition')
BEGIN
  EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'SQLServer Express Edition',
    @description = 'This db mail account is used by SQL Server Express edition.';
END;

Step 3: Assign Account to Profile

Now, we need to assign the database mail account to the database mail profile. Execute the following query in the MSDB database:

USE MSDB;
IF NOT EXISTS (SELECT * FROM msdb.dbo.sysmail_profileaccount pa
               INNER JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id
               INNER JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id
               WHERE p.name = 'SQLServer Express Edition' AND a.name = 'SQLServer Express')
BEGIN
  EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
    @profile_name = 'SQLServer Express Edition',
    @account_name = 'SQLServer Express',
    @sequence_number = 1;
END;

Step 4: Send Test Email

Once the Database Mail configuration is complete, we can send a test email. Execute the following code:

EXEC msdb.dbo.sp_send_dbmail
  @profile_name = 'SQLServer Express Edition',
  @recipients = 'your_email_address',
  @body = 'This is a test email sent from SQL Server Express Edition.',
  @subject = 'Test Email';

That’s it! You have successfully configured Database Mail in SQL Server Express edition. You can now send emails using the sp_send_dbmail stored procedure.

Remember to replace your_email_address, your_username, and your_password with your actual email address, username, and password.

Hope this guide helps you configure Database Mail in SQL Server Express edition!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.