Database mail setup for Gmail,Hotmail,Yahoo or AOL

Scenario

One great feature of SQL Server is the ability to get alerts when there are issues.  The alert process can send email notifications using Database Mail after you have configured your SMTP settings and setup your jobs and alerts to use this account.  In some cases you may not have a mail server, but still want to setup alerts.  In this tip we will walk through how you can setup Database Mail to use email services like Gmail, Hotmail, Yahoo, etc…

Solution

For this example, I have a SQL Server test environment configured and I want to test the alert mechanism using Hotmail. The following outlines the settings to do this.

Configuring Database Mail

When navigating through the database mail configuration wizard, you will encounter the below screen wherein the relevant details needs to be entered. Let’s consider the example of using the SMTP server details for Hotmail.  Enter the details as shown below.

Under ‘Outgoing Mail Server (SMTP)’

  • E-mail Address – Enter your Hotmail or Live account
  • Server Name – Enter as shown in screenshot
  • Port number – Enter as shown in screenshot
  • The server requires a secure connection (SSL) – check this box
    If this is left unchecked you will encounter this error message, ‘The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 4 (2011-12-14T23:36:13). Exception Message: Cannot send mails to mail server. (The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first).

Under ‘SMTP Authentication’

  • Select ‘Basic authentication’
  • User Name – Enter your Hotmail or Live account
  • Password –  Enter password of your Hotmail or Live account.
  • Confirm Password – Enter password of your Hotmail or Live account.

The below table outlines the necessary SMTP server details and port numbers for Hotmail, Gmail, Yahoo and AOL.

SMTP Server Details

Hotmail        SMTP server name: smtp.live.com                    Port number:   587
Gmail           SMTP server name: smtp.gmail.com                  Port number:   587
Yahoo          SMTP server name: smtp.mail.yahoo.com          Port number :  25
AOL             SMTP server name: smtp.aol.com                    Port number :  587

Sending a Test Email

Once your database mail profile has been configured you can send test emails for validation to verify setup is configured correctly.  Right click on Database Mail and select Send Test E-Mail as shown below.

You could also execute the Database Mail system procedure sp_send_dbmail with the appropriate parameters using this sample script below.

EXEC msdb.dbo.sp_send_dbmail

    @profile_name = 'Enter valid database profile name',

    @recipients = 'Enter Valid Email Address',

    @body = 'This is a test email sent from TEST server',

    @subject = 'TEST EMAIL',

    @importance ='HIGH'

Database Mail Troubleshooting

After testing, if you are unable to receive notification emails, you could use the below Database Mail views for troubleshooting.

select * from msdb.dbo.sysmail_sentitems

This contains one row for each message successfully sent by Database Mail.

select * from msdb.dbo.sysmail_unsentitems

This contains one row for each message that has an unsent or retrying status.

select * from msdb.dbo.sysmail_faileditems

This contains one row for each Database Mail message that has a failed status.

Here are some additional views sysmail_event_log and sysmail_allitems. There is also a Database Mail system stored procedure msdb.dbo.sysmail_help_queue_sp which could be used as well.

Summary

The above steps were performed using SQL Server 2008 R2 and I tested using Hotmail and Gmail.  This should work for any version of SQL Server 2005 and greater.

Note: If your company has an SMTP server I strongly urge that you use your companies SMTP server and only use this where you don’t have access to an SMTP server or if you need to test Database Mail.

Thanks for reading this article,

Next steps :

  1. Share this with your colleagues because Sharing  is Learning
  2. Comment below if you need any assistance

Powered by CodeReview – Let’s make it Better!