dMb Online

BBQ Lover, Real Ale Monster, Snowboarder, Technical Architect.

  • About Me
  • Contact

SQL 2016

SQL 2016 configuring database mail on Windows 2016

02/03/2017 / Leave a Comment

Recently I’ve started using SQL 2016 with basic availability groups for a new Citrix deployment. Whilst going through the configuration of my maintenance plans I thought it would be sensible to setup email notifications. I went through the following process of setting up database mail however I stumbled across an issue where the emails weren’t being sent.

To configure Database Mail open up the SQL management studio and right click Database Mail and select Configure Database Mail:

Configure SQL Database Mail

We will follow through the wizard to complete the basic configuration:

Start the Database Mail Configuration Wizard

Select set up Database Mail by performing the following tasks:

If the Database Mail feature is not available you will be asked to enable the feature, select Yes:

Create a new profile by populating the fields with meaningful information, then add an SMTP account:

Enter the relevant email settings for your server, this could be a local SMTP which allows relay, an Exchange server or even a Gmail account:

Select next:

Select the public checkbox next to the profile you have created:

Select next:

Select finish:

If everything goes to plan you will have no errors on this next bit, you can then select close:

Right click Database Mail and select send test e-mail:

SQL send Test E-Mail...

Enter the email address you would like to send the test email to and select send test e-mail:

Wait a short while to see if you receive the message, I waited 60 seconds before I thought something wasn’t right:

After clicking OK nothing happened, my first line of troubleshooting was connecting to the Exchange server with Telnet. I was able to confirm I could send an email by entering in the commands manually. There were no logs under Database Mail on the SQL server, so I proceeded to check the Database Mail queues.

Create a new query and enter the following for SQL 2016:

SELECT * FROM msdb..sysmail_event_log order by log_id DESC
SELECT * FROM msdb.dbo.sysmail_mailitems
SELECT * FROM msdb.dbo.sysmail_sentitems
USE msdb
SELECT sent_status, *
FROM sysmail_allitems
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';
EXECUTE msdb.dbo.sysmail_help_status_sp

You can see that the sent_status of the mail is unsent.

Open Windows Explorer and navigate to the following location:

When double clicking on DatabaseMail.exe I received the following message stating the following feature couldn’t be installed. Clear there is a requirement for .NET Framework 3.5 (includes .NET 2.0 and 3.0):

Open PowerShell, make sure you run it as administrator otherwise you will receive the following error:

With Windows 2016 you will need to specify an additional source such as a DVD or ISO, enter the following command:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

You will need to make sure you mount the ISO or insert the Windows 2016 DVD and select the correct path:

DISM installation in progress

Installation completed:

DISM installation completed

If you attempt to open DatabaseMail.exe now it will send the items in the queue.

I hope this helps and saves some head scratching!

Posted in: Geeky Stuff, Microsoft, SQL Tagged: Database Mail, SQL 2016

Buy Me a Coffee

Copyright © 2025 dMb Online.

Me WordPress Theme by themehall.com

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok