这里是我的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;
}
?>
它显示“您的电子邮件已发送,谢谢!”但不发送任何东西。 如何解决?
答案 0 :(得分:0)
通过注释isSMTP()
,这意味着您正在通过PHP的mail()
函数通过本地邮件服务器发送邮件,而您根本没有使用Yandex的SMTP服务器。
是说您已成功将消息传递到您自己的本地服务器,但此后无法告知消息发生了什么。您可以通过查看邮件服务器的日志文件(通常为/var/log/mail/log
之类的文件来查找)。
如果您确实想使用Yandex的服务器,请取消注释该行并设置$mail->SMTPDebug = 2;
,以便您可以看到服务器的内容。