Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Comment envoyer un e-mail WordPress à l’aide du serveur SMTP

109

Vous rencontrez des problèmes avec l’envoi d’e-mails dans WordPress? Sous le capot, WordPress envoie des e-mails à l’aide de la fonction mail() de PHP. Parfois, votre hébergement Web ne configure pas correctement les paramètres de messagerie. Par conséquent, aucun e-mail ne peut être envoyé depuis votre site WordPress.

Vous pouvez résoudre ce problème en utilisant le serveur SMTP. Habituellement, les sociétés d’hébergement Web fournissent leur propre serveur SMTP que vous pouvez utiliser pour envoyer des e-mails à votre site Web.

Alternativement, vous pouvez opter pour d’autres serveurs SMTP comme Gmail, Mailjet, etc. Tout cela nécessite des détails de base sur le serveur SMTP comme l’hôte, le port, etc.

Cela étant dit, voyons comment utiliser le serveur SMTP pour envoyer des e-mails WordPress.

PHPMailer dans WordPress

WordPress inclut la classe PHPMailer en son cœur. Si vous voulez le vérifier, vous trouverez ce fichier sous wp-includes/PHPMailer/PHPMailer.php.

Si nous configurons PHPMailer dans WordPress, la wp_mailfonction envoie des e-mails via cette classe PHPMailer. Dans ce cas, la wp_mailméthode ne dépend pas des paramètres d’hébergement. Au lieu de cela, ils utilisent les paramètres de votre serveur SMTP.

Je vais utiliser cette classe PHPMailer pour les e-mails. Comme cette classe est déjà incluse dans WordPress, nous n’avons pas besoin d’installer la bibliothèque PHPMailer séparément.

On peut utiliser le plugin WP Mail SMTP qui envoie également des e-mails à l’aide de serveurs SMTP. Mais je recommande toujours si quelque chose est réalisable en écrivant un petit morceau de code, alors allez-y. C’est une bonne pratique d’utiliser moins de plugins que possible. L’utilisation de plus de plugins sur le site Web augmente la charge supplémentaire sur le serveur. Et parfois, les plugins entrent en conflit les uns avec les autres, ce qui peut aboutir à un site défectueux.

Envoyer un e-mail WordPress via le serveur SMTP

Avant de continuer, vous devez être prêt avec vos informations SMTP telles que l’hôte, le port, le nom d’utilisateur et le mot de passe.

Si vous envisagez d’utiliser le serveur SMTP de Gmail, vous devez modifier certains paramètres de votre compte Google. Pour cela, connectez-vous à votre compte Google et cliquez sur le compte. Une fois sur la page Compte, cliquez sur Sécurité. Faites défiler vers le bas et vous trouverez les paramètres « Accès moins sécurisé aux applications ». Réglez-le sur ON.

Comment envoyer un e-mail WordPress à l'aide du serveur SMTP

Pour configurer PHPMailer dans WordPress, il existe un hook disponible qui est phpmailer_init. En utilisant phpmailer_inithook, nous pouvons accéder à l’objet PHPMailer et lui définir les arguments.

Ouvrez le functions.phpfichier de votre thème actif et placez le code ci-dessous à la fin d’un fichier.

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'YOUR_SMTP HOST';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 'SMTP_PORT'; //25 or 465
    $phpmailer->Username = 'SMTP_USERNAME';
    $phpmailer->Password = 'SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl'; //ssl or tls
}

Assurez-vous de remplacer les espaces réservés par les valeurs réelles. Disons que nous utilisons le serveur SMTP de Gmail, notre code sera écrit comme suit :

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'smtp.googlemail.com'; //gmail smtp host
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'GMAIL_USERNAME';
    $phpmailer->Password = 'GMAIL_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl';
}

Vous devez transmettre le nom d’utilisateur et le mot de passe réels de votre compte Gmail dans le code ci-dessus. Essayez maintenant d’envoyer des e-mails depuis votre site Web WordPress, les e-mails devraient commencer à fonctionner.

Déboguer le problème de messagerie

En ce moment, même après avoir utilisé PHPMailer, vos e-mails ne fonctionnent pas, alors en utilisant l’ wp_mail_failedaction, vous pouvez obtenir la cause du problème. Utilisez le code ci-dessous pour déboguer le problème.

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){
    $fn = ABSPATH. '/mail.log'; // say you've got a mail.log file in your server root
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: ". $wp_error->get_error_message() ."n");
    fclose($fp);
}

J’espère que vous comprenez comment envoyer des e-mails WordPress à l’aide du serveur SMTP. S’il vous plaît partager vos pensées et suggestions dans la section commentaires ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails