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

Envoyer un e-mail à l’aide du serveur SMTP de Gmail à partir d’un script PHP

938

Le courrier électronique joue un rôle important sur le site Web. Chaque site Web doit généralement envoyer des e-mails aux utilisateurs. Ces e-mails peuvent être envoyés depuis la page contactez-nous, la newsletter, le formulaire d’inscription, etc.

PHP fournit une mail()fonction qui est utilisée pour envoyer un e-mail. Mais il y a des limitations lors de l’utilisation de la mail()méthode. Vous ne pouvez pas envoyer de courrier électronique à partir d’un serveur de développement local. Un autre inconvénient est qu’il y a une forte possibilité que votre e-mail finisse dans un spam.

Dans la plupart des cas, mail()method n’envoie même pas d’e-mail. Cela peut être dû à une mauvaise configuration du serveur ou à autre chose.

Pour sortir de ces problèmes ou limitations, on peut utiliser le serveur SMTP pour envoyer les e-mails.

Dans cet article, nous étudions comment utiliser PHPMailer et le serveur SMTP de Gmail pour envoyer des e-mails.

Installation

Vous devez d’abord installer la bibliothèque PHPMailer dans votre projet. La méthode recommandée pour installer une bibliothèque est via Composer.

Ouvrez l’invite de commande dans le répertoire racine de votre projet et exécutez la commande ci-dessous.

composer require phpmailer/phpmailer

Comme nous utilisons Gmail SMTP, vous devez modifier certains paramètres de votre compte Google. Connectez-vous à votre compte Google et cliquez sur Mon compte. Une fois sur la page Mon 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.

Envoyer un e-mail à l'aide du serveur SMTP de Gmail à partir d'un script PHP

Après cela, nous devons écrire un code qui envoie un e-mail à l’aide de la bibliothèque PHPMailer et du serveur SMTP Gmail.

Script PHP pour l’envoi d’e-mails à l’aide du serveur SMTP de Gmail

Ouvrez votre fichier PHP où vous devez écrire un code pour les e-mails. Par exemple, je suppose que vous avez un sendemail.phpfichier dans le répertoire racine.

envoyeremail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

Dans le code ci-dessus, j’ai inclus l’environnement de la bibliothèque PHPMailer dans le fichier PHP.

Ensuite, pour envoyer des e-mails à l’aide de PHPMailer, l’utilisateur doit transmettre l’adresse du serveur SMTP de Gmail, le port SMTP pour Gmail et l’authentification SMTP (qui n’est autre que votre nom d’utilisateur et votre mot de passe d’un compte Google).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

C’est ça! Vous avez terminé la configuration. Maintenant, vous êtes prêt à envoyer un e-mail à un utilisateur.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Remplacez les espaces réservés par des valeurs réelles. Exécutez ce fichier sur un navigateur et votre e-mail devrait être envoyé sur l’adresse e-mail du destinataire.

Envoi de pièces jointes dans un e-mail

En utilisant la bibliothèque PHPMailer, on peut envoyer une ou plusieurs pièces jointes dans un e-mail. Vous n’avez qu’à passer un chemin de répertoire de vos pièces jointes à la méthode addAttachmentcomme suit.

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Notre code final est le suivant.

envoyeremail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

J’espère que vous comprenez comment envoyer des e-mails à l’aide du serveur SMTP de Gmail à partir d’un script PHP. Veuillez partager vos pensées et suggestions dans un commentaire 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