Sending Email from WordPress via SMTP with 10 Lines of PHP

Ok, so you have an SMTP server you want to use with your WordPress to send emails. It’s a good idea, since WordPress, out-of-box, sends emails using the web server which is a really bad choice.

BTW, if you don’t know how WP sends emails and you have a WP-based site, you need to read “How WordPress Fails to Send Emails“.

If you’re a common WP user you can select one of the many SMTP plugins. To say a couple of names, WP Mail SMTP or Fluent SMTP.

But you’re not a common WP user, right? You want to super-optimize everything and another plugin to install is not what you want.

Here we are: you already have them but a little reminder doesn’t hurt:

  • the SMTP server hostname
  • the protocol (TLS, SSL) and port
  • the username
  • the password

and those lines of code to put in a file named smtp.php and uploaded to the folder wp-content/mu-plugins.

<?php
add_action('phpmailer_init', function($mailer) {
	$mailer->IsSMTP();
	$mailer->Host ='your.smtp.com';
	$mailer->Port = 587;
	$mailer->SMTPSecure = 'tls';
	$mailer->SMTPAutoTLS = true;
	$mailer->SMTPAuth = true;
	$mailer->Username = 'a username';
	$mailer->Password = 'a password';
});

I hope I don’t have to explain how it works, if you have doubts or you can’t understand it, please don’t add it to your site!

How it works

Ops…

WP has a function, wp_mail(), used by everyone to send emails. This function uses the PHPMailer library shipped with WP.

When it’s time to send something, WP fires a filter for a PHPMailer instance giving the chance to other plugins to change it (reconfigure, replace, …, there are a lot of good and bad things one can do).

The code above just attaches a function to that filter and reconfigures the PHPMailer to use and SMTP… easy. Adding the code in a file inside the folder mu-plugins, as you probably already know, creates a “must-use” plugin that is always loaded by WP (and cannot be removed without deleting the file.


Photo by Vlada Karpovich

Subscribe to my newsletter (but only if you're interested about WP and plugins)

Similar Posts

Leave a Reply