Rumah  >  Soal Jawab  >  teks badan

Adakah mailer PHP berfungsi pada localhost atau ada sesuatu yang salah di sini?

Saya terus mendapat mesej ralat apabila cuba menghantar e-mel menggunakan PHP mailer (localhost). Atau mailer php tidak akan berfungsi pada localhost?

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

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';


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

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

    try {
        //Server settings
        $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
        $mail->isSMTP();                                            //Send using SMTP
        $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
        $mail->Username   = 'default@gmail.com';                     //SMTP username
        $mail->Password   = '00000120';                               //SMTP password
        // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
        $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

        //Recipients
        $mail->setFrom('NatsuDragneelxd42069@gmail.com', 'Mailer');
        $mail->addAddress('Received@gmail.com', 'Joe User');     //Add a recipient
        //$mail->addAddress('ellen@example.com');               //Name is optional
        $mail->addReplyTo('Noreply@gmail.com', 'Info');
        // $mail->addCC('cc@example.com');
        // $mail->addBCC('bcc@example.com');

        //Attachments
        // $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

        //Content
        $mail->isHTML(true);                                  //Set email format to HTML
        $mail->Subject = 'Here is the subject';
        $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }

Ini adalah ralat yang saya dapat:

Pelayan-> Ralat SMTP: Tidak dapat menyambung ke hos SMTP. Mesej tidak dapat dihantar. Ralat Pengirim: Ralat SMTP: Tidak dapat menyambung ke hos SMTP.

P粉969253139P粉969253139211 hari yang lalu328

membalas semua(1)saya akan balas

  • P粉364129744

    P粉3641297442024-02-26 11:12:42

    Saya tidak tahu mengapa anda mengulas baris ini, tetapi ia akan membuat sambungan gagal kerana ia akan cuba membuat sambungan tidak disulitkan ke port yang memerlukan penyulitan:

    // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

    Nyah komen dan anda mungkin bertuah. Anda juga mungkin ingin mencuba tetapan SMTPDebug = SMTP::DEBUG_CONNECTION kerana ia akan memberi anda lebih banyak maklumat tentang fasa TLS sambungan.

    Ini mungkin tidak menyelesaikan keseluruhan masalah anda kerana Gmail (mulai Mei 2022) tidak lagi membenarkan pengesahan menggunakan ID dan kata laluan biasa. Anda perlu beralih kepada menggunakan XOAUTH2 (disokong oleh PHPMailer), atau buat kata laluan aplikasi dalam konsol Gmail.

    Juga ambil perhatian bahawa gmail tidak membenarkan anda menggunakan sebarang alamat, hanya alamat 用户名 anda dan alias yang dipratentukan.

    Semua ini diliputi dalam

    Panduan Penyelesaian Masalah PHPMailer.

    balas
    0
  • Batalbalas