Bobcares

Sending Emails with xp_sendmail in SQL Server

by | May 27, 2024

Learn how to send emails with xp_sendmail in SQL Server. Our SQL Server team is here to help you with your questions and concerns.

Sending Emails with xp_sendmail in SQL Server

If you’re working with SQL Server and need to send emails directly from your database, you may have come across `xp_sendmail`.

This handy stored procedure lets us send emails using a MAPI client like Outlook.

Although newer versions of SQL Server offer the simpler `sp_send_dbmail`, `xp_sendmail` remains a valuable tool. It is useful when we need emails to be sent regardless of the transaction’s outcome.

`xp_sendmail` is a system procedure in SQL Server that sends messages to specified recipients. Also, this message can either be plain text or the result of a Transact-SQL query. Unlike `sp_send_dbmail`, which uses SMTP and doesn’t require additional software, `xp_sendmail` needs a MAPI client like Outlook installed on the server.

Syntax of xp_sendmail

Here’s the basic syntax for `xp_sendmail`:

Sending Emails with xp_sendmail in SQL Server

Here are the key parameters:

  • recipient: Email address of the recipient(s). Separate multiple addresses with semicolons.
  • subject: Optional email subject. Defaults to “Sybase SQL Server Message”.
  • cc_recipient: List of CC recipients, separated by semicolons.
  • bcc_recipient: List of BCC recipients, separated by semicolons.
  • query: Transact-SQL query whose results are sent in the email.
  • message: Text of the email message. Cannot be used with `query`.
  • attach_result: If true, attaches the query result to the email; if false, includes the result in the email body. Default is false.
  • echo_error: Includes error messages in the query results. Default is true.
  • include_file: Files to attach to the email, separated by semicolons.
  • no_column_header: If true, excludes column headers from query results. Default is false.
  • no_output: If true, suppresses output to the initiating session. Default is false.
  • width: Width of the result set in characters. Default is 80 characters.
  • separator: Character used to separate columns in the query result. Default is the tab character.
  • dbuser: Database user name for query execution. Default is “guest”.
  • dbname: Database name for query execution. Default is “master”.
  • type: Message type based on MAPI mail definition. Only “CMC:IPM” is supported.
  • include_query: If true, appends the query to the result set. Default is false.

Here’s an example of using `xp_sendmail` to send an email with an attachment:

For example

Furthermore, only system administrators have the necessary permissions to execute `xp_sendmail`. However, they can grant access to other users as needed.

While `xp_sendmail` requires a MAPI client and some setup, it remains a powerful tool for sending emails directly from SQL Server, especially when transactional independence is required. So, we can use `xp_sendmail` to boost the SQL Server’s email capabilities.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

In brief, our Support Experts demonstrated how to send emails with xp_sendmail in SQL Server.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.