Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Mailer funktioniert nicht: Kein Fehlerprotokoll, Meldung lautet gesendet, aber nicht empfangen

Ich erhalte keine Fehlerprotokolle im PHP-Fehlerprotokoll meines Webservers. Ich habe mehrere verschiedene SMTP-Server ausprobiert (andere E-Mail-Anbieter, von denen ich weiß, dass sie auch funktionieren). Das ist mein HTML-Formular:

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

Dies ist meine mailfunction.php, die meine Mailer-Funktion außerhalb des öffentlichen HTML aufruft.

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

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

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

?>

Dies ist meine Mail-Funktion.

<?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}";
            }
    }
}

?>

Es wurden keine Nachrichten gesendet. Was könnte hier falsch sein? Danke.

Fehler: 07.07.2022 01:16:57 SMTP-Fehler: Verbindung zum Server nicht möglich: Verbindung abgelehnt (111) SMTP connect() ist fehlgeschlagen. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

P粉593118425P粉593118425367 Tage vor745

Antworte allen(1)Ich werde antworten

  • P粉030479054

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

    我没有发现您的代码有问题。该错误可能是由于密码设置不正确造成的。嗯,授权程序可能不正确。当我遇到同样的错误时,我确定这就是问题所在并解决了它。您可以尝试观看此视频来解决该问题吗?(观看到 5:20 将会足以解决您的问题。)

    Antwort
    0
  • StornierenAntwort