Configurer un SMTP sur WordPress sans plugin
27 mars 2018 camillejg 9 commentaires
Depuis que les grands fournisseurs d’adresse emails ont durci les règles sur la réception des emails, la configuration d’un SMTP est devenu incontournable sur tous les sites Internet qui font de l’envoi transactionnel ou commercial. D’une part pour sécuriser les envois, et d’autre part pour s’approcher d’un taux de réception des emails proche de 100%.
Sur WordPress, de nombreux plugins permettent d’effectuer cette configuration de manière assez simple. Mais la solution technique est elle aussi très simple et rapide à mettre en place, et permet d’éviter l’installation d’un plugin supplémentaire sur votre site.
Pour ce faire, WordPress propose la fonction phpmailer_init(), qui se configure ainsi:
add_action( 'phpmailer_init', 'my_phpmailer_configuration' ); function my_phpmailer_configuration( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = 'smtp.exemple.com'; $phpmailer->SMTPAuth = true; // Indispensable pour forcer l'authentification $phpmailer->Port = 465; $phpmailer->Username = 'utilisateur'; $phpmailer->Password = 'motdepasse'; // Configurations complémentaires //$phpmailer->SMTPSecure = "ssl"; // Sécurisation du serveur SMTP : ssl ou tls //$phpmailer->From = "[email protected]"; // Adresse email d'envoi des mails //$phpmailer->FromName = "Nom Exemple"; // Nom affiché lors de l'envoi du mail }
Ce code est à ajouter dans le fichier functions.php de votre thème WordPress.
Quel service SMTP choisir ?
Vous ne savez quel service SMTP choisir, voici une liste non-exhaustive de quelques services performants et avec lesquels j’ai pu travailler sur mes différents projets :
- Mailjet (service Français)
- Sendinblue (service Français)
- Amazon Web Services – SES (Simple Email Services)
9 commentaires
Bonjour et merci pour votre article très clair et facile à mettre en place.
Je cherche à ajouter une ligne de code pour ajouter l’email de réponse.
Auriez-vous la possibilité de me donner l’info ?
Je vous en remercie par avance.
Bien cordialement
Pascal
Bonjour Pascal,
Il faut simplement ajouter cette ligne :
$phpmailer->AddReplyTo(‘[email protected]’, ‘Nom réponse’);
Bonne continuation !
Camille
Bonjour,
Est-ce que cette fonction doit être ajoutée pour toutes les boites emails du site ou simplement la principale du webmaster ?
A vous lire,
Bonjour Pascal,
Il faut y mettre l’adresse qui sera censée recevoir les emails de réponse. Donc celle du webmaster si c’est cette personne, sinon les adresses des personnes concernées.
Bonne continuation !
Camille
Merci pour cette infos qui m’a aidé
Bonjour, merci pour cet article. J’ai copié et ajouter le code dans le fichier functions.php de mon thème en paramétrant l’adresse smtp,le login et le mdp. J’ai aussi enlever les 2/ avant les lignes :
//$phpmailer->From = « [email protected] »; // Adresse email
//$phpmailer->FromName = « Nom Exemple »; // Nom affiché
Mais la fonction ne marche pas… auriez-vous un conseil à me donner?
Merci d’avance, Pascal
Bonjour Pascal,
Difficile à dire sans avoir de retour d’erreur.
Quel SMTP utilisez-vous ?
Camille
Bonjour et merci pour ce tutoriel.
Je voulais savoir s’il existe un code php pour définir une limite s’envoie par heure ou jour ?
Merci d’avance
Bonjour,
Si vous souhaitez limiter le nombre d’envoi de mails depuis votre site, le mieux serait peut-être d’utiliser une configuration stockée dans wp_option, par exemple « daily_max_send », puis une variable de comptage (par ex : daily_sended ») remise à zéro à minuit via une tâche cron.
Mais cela aura pour effet de ne plus autoriser l’envoi du tout une fois la limite atteinte.
Camille