Rumah  >  Soal Jawab  >  teks badan

Pengirim PHP tidak berfungsi: tiada log ralat, mesej mengatakan dihantar tetapi tidak diterima

Saya tidak menerima sebarang log ralat dalam log ralat php pelayan web saya. Saya telah mencuba beberapa pelayan SMTP yang berbeza (pembekal e-mel lain yang saya tahu berfungsi juga). Ini adalah borang HTML saya:

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

Ini adalah mailfunction.php saya yang memanggil fungsi mel saya di luar html awam.

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

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

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

?>

Ini adalah fungsi mel saya.

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

?>

Tiada mesej dihantar. Apa yang boleh berlaku di sini? Terima kasih.

Ralat: 2022-07-07 01:16:57 Ralat SMTP: Tidak dapat menyambung ke pelayan: Sambungan ditolak (111) Sambungan SMTP() gagal. https://github.com/PHPMailer/PHPMailer/wiki/Penyelesaian Masalah

P粉593118425P粉593118425318 hari yang lalu659

membalas semua(1)saya akan balas

  • P粉030479054

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

    Saya tidak nampak apa-apa yang salah dengan kod anda. Ralat ini mungkin disebabkan oleh tetapan kata laluan yang salah. Nah, prosedur kebenaran mungkin tidak betul. Apabila saya menghadapi ralat yang sama, saya menentukan bahawa ini adalah masalah dan menyelesaikannya. Bolehkah anda cuba menonton Video ini untuk menyelesaikan masalah? (Menonton sehingga 5:20 sudah cukup untuk menyelesaikan masalah anda.)

    balas
    0
  • Batalbalas