Maison  >  Questions et réponses  >  le corps du texte

Le mailer PHP ne fonctionne pas : pas de journal d'erreurs, le message indique envoyé mais non reçu

Je ne reçois aucun journal d'erreurs dans le journal des erreurs php de mon serveur Web. J'ai essayé plusieurs serveurs SMTP différents (d'autres fournisseurs de messagerie que je connais fonctionnent également). Voici mon formulaire HTML :

<form action="/mailfunction.php" method="post" id="contact-form">
      <div class="nameInput">
      <input id="boxes" type="text" id="fname" name="name" value="" class="formFormL" placeholder="Name" maxlength="50"></input>
      </div>
      <div class="emailInput">
      <input id="boxes" type="text" id="lname" name="email" value="" class="formFormR" placeholder="Email" maxlength="50"></input>
      </div>

      <div class="messageInput">
      <textarea id="boxes" id="fname" name="message" value="" class="formFormM" placeholder="Message" maxlength="1000"></textarea>
      </div>
      <div style="padding: 5px;">
      <button type="submit" value="Send" class="up" name="submit">Send</button>
      </div>
    </form>

C'est mon mailfunction.php qui appelle ma fonction mailer en dehors du HTML public.

<?php 
require '[REDACTED]/mailer.php';

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

mails($name, $email, $message);

?>

C'est ma fonction mail.

<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

function mails($name, $email, $message) {

    if(isset($_POST['submit'])){
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];

        try{
            $mail = new PHPMailerPHPMailerPHPMailer();
            $mail->isSMTP();
            $mail->Host = 'smtp.gmail.com';
            $mail->SMTPAuth   = true; 
            $mail->Username   = '[REDACTED]'; 
            $mail->Password   = '[REDACTED]'; 
            $mail->SMTPSecure = 'SSL'; 
            $mail->Port       = 465;  

            $mail->setFrom('[REDACTED]');
            $mail->addAddress('[REDACTED]');

            $mail->isHTML(true);                                  
            $mail->Subject = 'Message Received (Contact Page)';
            $mail->Body    = '<h3>Name : $name <br>Email: $email <br>Message : $message</h3>';
            $mail->send();
            echo 'Message has been sent';
            } catch (Exception $e) {
                echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
            }
    }
}

?>

Aucun message n'a été envoyé. Qu’est-ce qui ne va pas ici ? Merci.

Erreur : 2022-07-07 01:16:57 Erreur SMTP : Impossible de se connecter au serveur : Connexion refusée (111) La connexion SMTP () a échoué. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

P粉593118425P粉593118425318 Il y a quelques jours658

répondre à tous(1)je répondrai

  • P粉030479054

    P粉0304790542023-11-11 10:28:42

    Je ne vois rien de mal avec votre code. Cette erreur peut être provoquée par des paramètres de mot de passe incorrects. Eh bien, la procédure d'autorisation est peut-être incorrecte. Lorsque j'ai rencontré la même erreur, j'ai déterminé que c'était là le problème et je l'ai résolu. Pouvez-vous essayer de regarder cette Vidéo pour résoudre le problème ? (Regarder jusqu'à 17h20 suffira à résoudre votre problème.)

    répondre
    0
  • Annulerrépondre