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