Le mailer PHP ne fonctionne pas : pas de journal d'erreurs, le message indique envoyé mais non reçu
P粉593118425
P粉593118425 2023-11-10 15:02:39
0
1
784

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粉593118425
P粉593118425

répondre à tous(1)
P粉030479054

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.)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal