Skip to content

Instantly share code, notes, and snippets.

@slaFFik
Last active March 18, 2025 16:48
Show Gist options
  • Save slaFFik/c1d7d4249f47da7195fb973109952090 to your computer and use it in GitHub Desktop.
Save slaFFik/c1d7d4249f47da7195fb973109952090 to your computer and use it in GitHub Desktop.
WP Mail SMTP: when using SMTP mailer - disable SSL verify on PHP 5.6+
<?php
add_filter('wp_mail_smtp_custom_options', function( $phpmailer ) {
$phpmailer->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
return $phpmailer;
} );
@jinhr
Copy link

jinhr commented Jun 3, 2021

Thank you, it works!

I was having SMTP failure because my corporate SMTP server uses a self-signed certificate.

My first attempt was to edit WordPress core file /wp-includes/PHPMailer/PHPMailer.php with following class attribute values:
public $SMTPOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ];

Although above solution worked, it triggered another issue: the plugin Wordfence complained "WordPress core file modified", which made sense to protect the WordPress core from being polluted.

So I kept search for better solution when I found this thread. I just added the codes into /wp-content/themes/{my-theme-name}/functions.php, and my WP Mail SMTP reported Email Test successfully.

@becahp
Copy link

becahp commented Jun 20, 2022

Thank you, it works! (using Wordpress 6.0 and WP Mail SMTP Version 3.2.1)

@Lazza
Copy link

Lazza commented Oct 30, 2024

It works, thank you. For those wondering where to put this, the cleanest possible way is to use the Code Snippets plugin:

https://wordpress.org/plugins/code-snippets/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment