Maison >développement back-end >tutoriel php >Aide nécessaire : j'ai du mal à configurer PHP Mailer pour mon formulaire de contact

Aide nécessaire : j'ai du mal à configurer PHP Mailer pour mon formulaire de contact

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-07 11:31:13224parcourir

Help Needed: Struggling to Set Up PHP Mailer for My Contact Form

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!

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