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.
Une fois terminé, récupérez les détails SMTP situés dans la même section :
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 PHPMailerPuisque 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
composer require phpmailer/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 '../vendor/autoload.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->SMTPDebug = 2; $mail->Host = 'mx1.hostinger.com'; $mail->Port = 587; $mail->SMTPAuth = true; $mail->Username = 'test@hostinger-tutorials.com'; $mail->Password = 'EMAIL_ACCOUNT_PASSWORD'; $mail->setFrom('test@hostinger-tutorials.com', 'Your Name'); $mail->addReplyTo('reply-box@hostinger-tutorials.com', 'Your Name'); $mail->addAddress('example@gmail.com', 'Receiver Name'); $mail->Subject = 'PHPMailer SMTP message'; $mail->msgHTML(file_get_contents('message.html'), __DIR__); $mail->AltBody = 'This is a plain text message body'; $mail->addAttachment('test.txt'); if (!$mail->send()) { echo 'Mailer 错误: ' . $mail->ErrorInfo; } else { echo '发送消息!'; } ?>
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 PHPMailerCré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 à :
Étape 5 - Exemple de formulaire de contact PHPMailerVous 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 '../vendor/autoload.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 'mx1.hostinger.com'; $mail->Port = 587; $mail->SMTPAuth = true; $mail->Username = 'test@hostinger-tutorials.com'; $mail->Password = 'EMAIL_ACCOUNT_PASSWORD'; $mail->setFrom('test@hostinger-tutorials.com', 'Mr. Drago'); $mail->addAddress('example@gmail.com', 'Receiver Name'); if ($mail->addReplyTo($_POST['email'], $_POST['name'])) { $mail->Subject = 'PHPMailer contact form'; $mail->isHTML(false); $mail->Body = <<<EOT Email: {$_POST['email']} Name: {$_POST['name']} Message: {$_POST['message']} EOT; if (!$mail->send()) { $msg = '对不起,出了点问题。请稍后再试。'; } else { $msg = '发送消息成功!谢谢您联络我们。'; } } else { $msg = '电子邮件地址无效,邮件被忽略。'; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>邮件表单</title> </head> <body> <h1>Let'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>
Une 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!