Sending emails with wp_mail in WordPress

The WordPress wp_mail function is a built-in function that allows you to send emails from your WordPress site. It can be useful for sending notifications, alerts, or messages to users or administrators of the site.

It provides a convenient way to send emails without the need for a separate email server setup, making it easy to integrate email functionality into your WordPress site.

Parameters Accepted by WordPress wp_mail Function

The wp_mail function in WordPress accepts the following parameters:

  • $to (string/string[]), required. Description: Array or comma-separated list of email addresses to send message.
  • $subject (string), required. Description: Email subject.
  • $message (string), required. Description: Message contents.
  • $headers (string/string[]), optional. Default value: ”. Description: Additional headers.
  • $attachments (string/string[]), optional. Default value: array(). Description: Paths to files to attach.

Return Value of WordPress wp_mail Function

The wp_mail function returns a boolean value indicating whether the email was sent successfully.

Examples

How to send a basic email using wp_mail function

Here’s a simple code snippet to send a basic email using the wp_mail function:

<?php
$to = '[email protected]';
$subject = 'Hello from WordPress!';
$message = 'This is a test email sent from WordPress.';
$headers = array('Content-Type: text/html; charset=UTF-8');

wp_mail( $to, $subject, $message, $headers );
?>

This code snippet sets the recipient email address, email subject, message content, and headers for the email. Then it uses the wp_mail function to send the email.

How to send an email with attachments using wp_mail function

Here’s a code snippet to send an email with attachments using the wp_mail function:

<?php
$to = '[email protected]';
$subject = 'Email with attachments';
$message = 'This email contains attachments.';
$headers = array('Content-Type: text/html; charset=UTF-8');

$file_path = '/path/to/attachment.pdf';
$file_path2 = '/path/to/another-attachment.jpg';
$attachments = array( $file_path, $file_path2 );

wp_mail( $to, $subject, $message, $headers, $attachments );
?>

This code snippet sets the recipient email address, email subject, message content, and headers for the email. It also specifies the file paths of the attachments and uses the wp_mail function to send the email with attachments.

How to send a conditional email using wp_mail function

Here’s a code snippet to send a conditional email using the wp_mail function:

<?php
$to = '[email protected]';
$subject = 'Conditional email from WordPress';
$message = 'This email is sent conditionally.';
$headers = array('Content-Type: text/html; charset=UTF-8');

if ( $condition ) {
 wp_mail( $to, $subject, $message, $headers );
}
?>

This code snippet sets the recipient email address, email subject, message content, and headers for the email. It then uses an if statement to check a condition, and if the condition is true, it sends the email using the wp_mail function.

Conclusion

The wp_mail function is a valuable utility for sending emails in WordPress. With its customizable parameters and ability to send HTML or plain text emails, it provides a flexible solution for developers and site administrators. Its integration with WordPress’ built-in functionality makes it easy to use and reliable. However, it’s important to remember to handle user input securely to prevent spam and abuse. By following best practices and utilizing the wp_mail function effectively, WordPress users can enhance their communication with site visitors and improve the overall user experience.