Maison  >  Article  >  développement back-end  >  Comment envoyer un email en php ? Implémenté à l'aide de PHPMailer

Comment envoyer un email en php ? Implémenté à l'aide de PHPMailer

青灯夜游
青灯夜游original
2018-11-02 18:11:075166parcourir

Comment envoyer un email en php ? Cet article vous expliquera comment utiliser PHPMailer+SMTP pour envoyer des e-mails, afin que vous puissiez comprendre comment configurer et utiliser PHPMailer. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

PHPMailer est une bibliothèque d'envoi d'e-mails PHP populaire. Il prend en charge l'envoi de courrier via la fonction mail() ou SMTP. En bref, PHPMailer est un moyen efficace d'envoyer des emails dans un environnement basé sur PHP.

Jetons un coup d'oeil ci-dessous

Étape 1 - Collectez les détails de PHPMailer

Pour utiliser PHPMailer avec Hostinger SMTP, vous devez d'abord créer un compte de messagerie. Vous pouvez le faire dans la section Comptes de messagerie de votre panneau d'hébergement Web.

Comment envoyer un email en php ? Implémenté à laide de PHPMailer

Une fois terminé, récupérez les détails SMTP situés dans la même section :

Comment envoyer un email en php ? Implémenté à laide de PHPMailer

Vous devriez maintenant avoir quatre sections, ce sont :

1. Nom d'utilisateur du compte de messagerie

2. Mot de passe du compte de messagerie

3. Hôte SMTP

4. 🎜>

Étape 2 - Installer PHPMailer

Puisque nous avons tous les détails requis, nous pouvons démarrer la configuration de PHPMailer. Un moyen simple consiste à utiliser Composer. Il est préinstallé sur nos forfaits d'hébergement mutualisé, il vous suffit donc de vous connecter via SSH et d'exécuter la commande suivante :

Ensuite, exécutez :
cd public_html

Attendez un moment et installez Terminé, PHPMailer apparaîtra dans le répertoire nouvellement créé.
composer require phpmailer/phpmailer

Étape 3 – Comprendre PHPMailer

Pour comprendre PHPMailer et son fonctionnement, examinons un exemple de livraison utilisant SMTP.

Regardons ce que fait chaque composant :
<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = &#39;mx1.hostinger.com&#39;;
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = &#39;test@hostinger-tutorials.com&#39;;
$mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
$mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addReplyTo(&#39;reply-box@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
$mail->Subject = &#39;PHPMailer SMTP message&#39;;
$mail->msgHTML(file_get_contents(&#39;message.html&#39;), __DIR__);
$mail->AltBody = &#39;This is a plain text message body&#39;;
$mail->addAttachment(&#39;test.txt&#39;);
if (!$mail->send()) {
    echo &#39;Mailer 错误: &#39; . $mail->ErrorInfo;
} else {
    echo &#39;发送消息!&#39;;
}
?>

Comment envoyer un email en php ? Implémenté à laide de PHPMailer

Conseil de pro :

SMTPDebug = 2 ; Utile pour tester un script et voir comment il fonctionne.

Définissez ceci sur SMTPDebug = 0 ; dans la version finale pour éviter que les utilisateurs finaux ne voient les rapports de livraison SMTP.

Si vous inspectez l'intégralité du code, vous remarquerez que nous faisons quelque chose d'un peu différent de celui du premier exemple. Nous envoyons des messages HTML. Son contenu sera extrait du fichier message.html situé dans le même répertoire. Cela vous permet de formater le texte et offre plus de fonctionnalités que les messages en texte brut.

Étape 4 - Exécutez le script PHPMailer

Créons un fichier testphpmailer.php et remplissons tous les champs avec les détails SMTP que nous avons récupérés plus tôt. Exécutez le script en tapant YourDomain.com/testphpmailer.php dans votre navigateur et vous verrez un message similaire à :

Comment envoyer un email en php ? Implémenté à laide de PHPMailer

Étape 5 - Exemple de formulaire de contact PHPMailer

Vous pouvez utiliser PHPMailer pour bien plus que simplement envoyer de simples messages. Une façon d’en profiter est de créer un formulaire de contact où vos visiteurs ou utilisateurs peuvent vous contacter. Voici un exemple basique d'un tel script :

Le résultat final est :
<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = &#39;mx1.hostinger.com&#39;;
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->Username = &#39;test@hostinger-tutorials.com&#39;;
    $mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
    $mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Mr. Drago&#39;);
    $mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
if ($mail->addReplyTo($_POST[&#39;email&#39;], $_POST[&#39;name&#39;])) {
        $mail->Subject = &#39;PHPMailer contact form&#39;;
        $mail->isHTML(false);
        $mail->Body = <<<EOT
Email: {$_POST[&#39;email&#39;]}
Name: {$_POST[&#39;name&#39;]}
Message: {$_POST[&#39;message&#39;]}
EOT;
if (!$mail->send()) {
            $msg = &#39;对不起,出了点问题。请稍后再试。&#39;;
} else {
            $msg = &#39;发送消息成功!谢谢您联络我们。&#39;;
}
} else {
        $msg = &#39;电子邮件地址无效,邮件被忽略。&#39;;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>邮件表单</title>
</head>
<body>
<h1>Let&#39;s get in touch!</h1>
<?php if (!empty($msg)) {
    echo "<h2>$msg</h2>";
} ?>
<form method="POST">
    <label for="name">名称: <input type="text" name="name" id="name"></label><br><br>

    <label for="email">电子邮件: <input type="email" name="email" id="email"></label><br><br>

    <label for="message">消息:<textarea name="message" id="message" rows="8" cols="20"></textarea></label><br><br>
    <input type="submit" value="发送">
</form>
</body>
</html>

Comment envoyer un email en php ? Implémenté à laide de PHPMailerUne fois que l'utilisateur aura soumis son message, il recevra le confirmation, le contenu sera envoyé à l'adresse e-mail saisie dans le champ addAddress.

Conseil de pro : Si le formulaire de contact PHPMailer ne fonctionne pas, ajoutez la ligne suivante pour voir la cause du problème : $mail->

Une fois terminé, ne le faites pas. N'oubliez pas d'ajouter Supprimez-le ou mettez-le à zéro !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn