Maison >développement back-end >tutoriel php >Aide nécessaire : j'ai du mal à configurer PHP Mailer pour mon formulaire de contact
Salut la communauté des développeurs ! ?
Je suis passionné de marketing digital et débutant en PHP, et j'ai besoin d'aide pour résoudre un problème sur mon site web.
Mon site Web
? WebFluence
Plus précisément, le formulaire de contact ici : Formulaire de contact
Le problème
Le formulaire de contact était accompagné d'un fichier PHP prédéfini situé dans include/sendmail.php. Malheureusement, le script utilise la fonction mail() obsolète, qui, selon Hostinger (mon fournisseur d'hébergement), n'est pas sécurisée et n'est pas recommandée. Ils m'ont conseillé d'utiliser PHPMailer, qui est préinstallé sur leurs forfaits d'hébergement professionnel.
J'ai lu des articles sur la configuration de PHPMailer, mais honnêtement, c'est un peu écrasant pour moi puisque je n'ai jamais travaillé avec PHP auparavant. L'auteur du modèle n'a pas répondu et je suis coincé à essayer de comprendre cela.
Détails
Domaine : enregistré auprès de GoDaddy
Hébergement : Plan Business Hostinger
Script de messagerie actuel : le script de fonction mail() obsolète est ici :
<?php // Lire les valeurs du formulaire $succès = faux ; $successTxt = ""; $senderName = isset( $_POST['name'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['nom'] ) : ""; $senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^.-_@a-zA-Z0-9]/", "", $_POST['email'] ) : ""; $sujet = isset( $_POST['sujet'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['sujet'] ) : ""; $budget = isset( $_POST['budget'] ) ? preg_replace( "/^[A-Za-z0-9\-\.] $/", "", $_POST['budget'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(De:|À:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : ""; $txt = "Budget client : " . $budget. "nn" . $message. "nn" . "Cordialement,nn" . $nom de l'expéditeur . " | " .$senderEmail; // Si toutes les valeurs existent, envoie l'e-mail si ( $senderName && $senderEmail && $message ) { $mailTo = "dusan@webluence.digital"; // remplacez-le par votre messagerie hôte par exemple (contact@votredomaine.com). $headers = "De : " . $expéditeurEmail ; $success = mail( $mailTo, $subject, $txt, $headers ); $successTxt = "<p> <p>Ce dont j'ai besoin<br> Je souhaite remplacer ce script par un script sécurisé basé sur PHPMailer. Hostinger a préinstallé PHPMailer et on m'a dit que c'était plus fiable. J'ai trouvé un article sur sa configuration, mais c'est trop déroutant pour moi en tant que nouveau venu en PHP.</p> <p>Voici ce que j'ai en ce moment :<br> </p><pre class="brush:php;toolbar:false"><?php nécessite 'vendor/autoload.php' ; utilisez PHPMailerPHPMailerPHPMailer ; $mail = nouveau PHPMailer ; $mail->isSMTP(); $mail->SMTPDebug = 0; $mail->Hôte = 'smtp.hostinger.com'; $mail->Port = 587 ; $mail->SMTPAuth = vrai ; $mail->Nom d'utilisateur = 'sales@webfluence.digital'; $mail->Mot de passe = 'c;Ge?H9unUs#:T0J'; $mail->setFrom('sales@webfluence.digital', 'Dusan Walla'); $mail->addReplyTo('sales@webfluence.digital', 'Dusan Walla'); // Lit les valeurs du formulaire et les nettoie pour éviter les attaques par injection $senderName = isset($_POST['nom']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['nom']) : ""; // Supprime tous les caractères qui ne sont pas des lettres, des chiffres, des espaces, des points, des traits d'union ou des apostrophes $senderEmail = isset($_POST['email']) ? preg_replace("/[^.-_@a-zA-Z0-9]/", "", $_POST['email']) : ""; // Supprime tous les caractères qui ne sont pas des lettres, des chiffres, des points, des traits d'union, des traits de soulignement ou @ $sujet = isset($_POST['sujet']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['sujet']) : ""; // Supprime tous les caractères qui ne sont pas des lettres, des chiffres, des espaces, des points, des traits d'union ou des apostrophes $budget = isset($_POST['budget']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['budget']) : ""; // Supprime tous les caractères qui ne sont pas des lettres, des chiffres, des espaces, des points, des traits d'union ou des apostrophes $message = isset($_POST['message']) ? preg_replace("/(De:|À:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; // Supprimez tous les en-têtes de courrier électronique pour empêcher l'injection d'en-têtes $mail->addAddress('sales@webfluence.digital', 'Dusan Walla'); $mail->Sujet = $sujet; $mail->Corps = <<<EOD Budget client : budget $ $message Salutations, $nom de l'expéditeur | $expéditeurEmail NEM ; si ($mail->envoyer()) { echo 'Erreur de messagerie : ' . $mail->ErrorInfo; } autre { écho "<p> <p>Questions<br> Comment remplacer ce script par PHPMailer de la manière la plus simple possible ?<br> Existe-t-il un guide étape par étape qui détaille ce que je dois faire ?<br> Comment configurer les paramètres SMTP de Hostinger dans le script ?<br> Toute aide serait profondément appréciée ! ?</p> <p>Ressources supplémentaires<br> Voici l'article auquel je faisais référence : Comment utiliser PHPMailer pour l'envoi sécurisé d'e-mails</p> <p>Merci d'avance pour vos conseils ! ?</p>
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!