我的yandex smtp显示成功消息,但未发送任何消息

时间:2018-07-20 09:55:52

标签: php email smtp phpmailer

这里是我的php代码,用于通过YANDEX MAIL与phpmailer发送电子邮件:

<?php 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
include_once "phpmailer/PHPMailer.php";
include_once "phpmailer/Exception.php";
include_once "phpmailer/SMTP.php";

主要内容

if (isset($_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $mail = new PHPMailer();

//if we want to send via SMTP
    $mail->Host = 'smtp.yandex.ru';
    //$mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->Username = "example@yandex.ru";//my yandex mail
    $mail->Password = "password";//my yandex password
    $mail->SMTPSecure = "ssl"; //TLS
    $mail->Port = 465; //587
    $mail->CharSet = "UTF-8";
    $mail->addAddress('example@gmail.com'); //to
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;

    if ($mail->send())
        echo "Your email has been sent, thank you!";
    else
        echo "Please try again!".$mail->ErrorInfo;

}
?>

它显示“您的电子邮件已发送,谢谢!”但不发送任何东西。 如何解决?

1 个答案:

答案 0 :(得分:0)

通过注释isSMTP(),这意味着您正在通过PHP的mail()函数通过本地邮件服务器发送邮件,而您根本没有使用Yandex的SMTP服务器。

是说您已成功将消息传递到您自己的本地服务器,但此后无法告知消息发生了什么。您可以通过查看邮件服务器的日志文件(通常为/var/log/mail/log之类的文件来查找)。

如果您确实想使用Yandex的服务器,请取消注释该行并设置$mail->SMTPDebug = 2;,以便您可以看到服务器的内容。