Tag Archives

2 Articles
Utiliser un serveur SMTP externe dans WordPress 3.2+

Utiliser un serveur SMTP externe dans WordPress 3.2+

by Throrïn 3 Comments

Bon, cet article sera fait à chaud après avoir bataillé entre WordPress et un tutoriel existant mais pas à jour. Nous allons donc voir comment utiliser un serveur SMTP externe pour l’envoi d’emails avec WordPress.

Pourquoi faire cela quand WordPress doit normalement tout gérer seul (en théorie). Et bien car parfois, il arrive qu’un serveur n’ai pas de serveur de messagerie installé. Dans ce cas, il se peut que WordPress ne vous renvoie pas d’erreur lors de l’envoie du mail et que celui-ci soit perdu avant d’avoir quitté le serveur.

Pour ce faire, il est possible de modifier le comportement de WordPress et de lui obliger de passer par un serveur SMTP externe à votre serveur Web. Après les explications de base, ouvrez votre WordPress et rendez-vous dans le dossier /wp-includes/. Nous allons enfin mettre les mains dans le cambouis.

Tout d’abord ouvrez le fichier pluggable.php et allez jusqu’à la ligne 462. Vous devriez avoir ceci :

$phpmailer->IsMail();

Nous allons la remplacer par cela :

$phpmailer->IsSMTP();

Cette modification va tout simplement changer la méthode d’envoie des mails par WordPress. Nous lui indiquons ici de passer par les réglages SMTP.

Maintenant, nous allons toucher au fichier class-phpmailer.php. Ce fichier contient la classe PhpMailer qui s’occupe d’envoyer les e-mails. Qu’allons-nous faire dans ce fichier ? Juste renseigner les informations de notre serveur. Tout ceci se déroule entre la ligne 180 et la ligne 217 :

public $Host          = 'adresse de votre serveur';

/**
 * Sets the default SMTP server port.
 * @var int
 */
public $Port          = 25; //port de votre serveur

/**
 * Sets the SMTP HELO of the message (Default is $Hostname).
 * @var string
 */
public $Helo          = ''; //perso je ne m'en sers pas

/**
 * Sets connection prefix.
 * Options are "", "ssl" or "tls"
 * @var string
 */
public $SMTPSecure    = ''; //Si vous avez besoin d'une authentification SSL ou TLS, renseignez le.

/**
 * Sets SMTP authentication. Utilizes the Username and Password variables.
 * @var bool
 */
public $SMTPAuth      = false; //Metre à true si vous devez vous identifier dessus

/**
 * Sets SMTP username.
 * @var string
 */
public $Username      = ''; //login du serveur SMTP

/**
 * Sets SMTP password.
 * @var string
 */
public $Password      = ''; //Mot de passe du serveur SMTP

Voilà, normalement avec tout ceci, vous pouvez maintenant envoyer convenablement des e-mails avec WordPress via un serveur SMTP externe.

Modifier le serveur SMTP de Zend_Mail

Bonjours, Aujourd’hui je vais juste vous éclairer quand à la configuration d’un transport smtp pour Zend_Mail.

Rien de bien complexe cela dit, il suffit juste de lire la documentation et le tour est joué. Néanmoins, je vais vous commenter les différentes étapes pour réussir à envoyer votre email de n’importe quel serveur SMTP.

Ici, je vais vous faire l’exemple avec le smtp de 1&1 : auth.smtp.1and1.fr

//configuration des accès mail de mon mail
$config = array('auth' => 'login',
'username' => 'username',
'password' => 'password');

//on créé maintenant un nouveau transport
$transport = new Zend_Mail_Transport_Smtp('auth.smtp.1and1.fr', $config);

$mail = new Zend_Mail('utf-8');
$mail->setSubject($sujet);
$mail->setFrom($email);
$mail->addTo("emaildenvoi@domaine.fr");
$mail->setBodyText($message);
$mail->send($transport);

Comme on peut le voir, on commence par indiquer le type de connection avec auth. Il peut y avoir trois valeurs possibles (voir documentation). Ici on utilise la méthode login pour une authentification simple.

A partir de là, vos email seront envoyés en passant par le serveur configuré.