Ce qu'il faut savoir
- Options de classe PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
- PEAR Mail: Notez le nom du serveur de messagerie > vérifiez que PEAR Mail est installé > modifiez le fichier PHP en utilisant les exemples donnés.
Cet article explique comment utiliser l'authentification SMTP pour envoyer des e-mails avec la fonction PHP mail() dans PEAR Mail.
Envoyer un e-mail avec la fonction PHP Mail
Lorsque vous utilisez la fonction PHP mail(), vous finissez par envoyer des e-mails directement depuis votre serveur Web plutôt que depuis votre serveur de messagerie. Si vous avez un serveur de messagerie via votre hôte Web, ou même un serveur de messagerie avec un autre hôte, il est généralement préférable d'envoyer le courrier via celui-ci.
Le problème est que la fonction PHP mail() ne fournit aucun moyen intégré d'envoyer du courrier via SMTP. Si vous souhaitez ouvrir cette fonctionnalité, vous devrez installer une classe PHP supplémentaire.
Voici quelques options qui fonctionnent:
- PHPmailer
- SwiftMailer
- Zend_Mail
- XpertMailer
- PEAR Mail
Nous allons vous montrer comment utiliser PEAR Mail, mais vous pouvez utiliser n'importe quelle classe prenant en charge SMTP.
Si votre hébergeur a déjà installé une ou plusieurs de ces classes, il a probablement des tutoriels relatifs à votre situation. Si c'est le cas, allez-y et utilisez la classe à laquelle vous avez accès.
N'utilisez cette méthode que si vous utilisez PHP pour créer vos propres formulaires de messagerie personnalisés. Si vous utilisez un système de gestion de contenu (CMS) comme WordPress, recherchez un plugin ou une fonctionnalité intégrée pour envoyer du courrier via SMTP, plutôt que d'essayer de créer le vôtre.
Comment utiliser PEAR pour envoyer du courrier via SMTP
- Assurez-vous que votre domaine pointe vers les enregistrements Mail Exchange (MX) de l'hôte de votre serveur de messagerie et notez le nom de votre serveur de messagerie. Par exemple, il peut s'agir de mail.votredomaine.net ou smtp.votredomaine.net.
- Vérifiez si PEAR Mail est déjà installé sur votre serveur de messagerie.
- Si PEAR Mail n'est pas installé, consultez votre hébergeur de messagerie Web pour obtenir des instructions spécifiques pour l'installer.
-
Une fois PEAR Mail installé, modifiez l'un des exemples de fichiers PHP dans les sections suivantes pour l'adapter à vos besoins.
Exemple de script PHP PEAR Mail pour la messagerie SMTP
Vous pouvez créer votre propre script à partir de zéro si vous le souhaitez, ou modifier l'exemple suivant à votre guise. Assurez-vous d'entrer le nom de votre serveur de messagerie Web dans la variable hôte et d'utiliser vos informations de connexion pour votre hôte de messagerie Web dans les champs nom d'utilisateur et mot de passe.
require_once "Mail.php";
$from="Nom de l'expéditeur";
$to="Nom du destinataire";
$subject=" Objet Ici: ";
$body=" n'importe quel message que vous voulez ";
$host="yourmailhost.com";
$username="votre nom d'utilisateur ou email"; $password="votre mot de passe";
$headers=array ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} else {echo("
Message envoyé avec succès !
);}
Exemple de script PHP PEAR Mail pour l'authentification SMTP et le cryptage SSL
Si vous souhaitez utiliser l'authentification SMTP et le cryptage SSL, vous devrez apporter quelques modifications à l'exemple précédent. Vous devrez faire pointer la variable hôte vers votre serveur de messagerie SSL et également spécifier un numéro de port tel que 25, 465, 587, 2525 ou 8025. Contactez votre hôte de messagerie Web pour plus d'informations si vous ne savez pas sur quel port utilisez.
require_once "Mail.php";
$from="Nom de l'expéditeur";
$to="Nom du destinataire";
$subject=" Objet Ici: ";
$body=" n'importe quel message que vous voulez ";
$host="ssl://yourmailhost.com";
$port="587"; $username="votre nom d'utilisateur ou email";
$password="votre mot de passe";
$headers=array ('From'=> $from, ' To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} else {echo("
Message envoyé avec succès !
);}