我在使用PHPMAILER时遇到问题,在localhost中工作正常,但在服务器中却给我错误
PHPMAILER代码
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
function sendMail($driver, $driverUser){
// Load Composer's autoloader
require 'vendor/autoload.php';
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'wastaapplication@gmail.com'; // SMTP username
$mail->Password = '*******'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('wastaapplication@gmail.com', 'Wasta Driver');
$mail->addAddress($driver, $driverUser); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'New Order';
$mail->Body = ' مرحبا ' . '<strong>' . $driverUser . '</strong>' . ' لديك طلبيه جديده برجاء مراجعه برنامج الطيارين ';
$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}";
}
}
错误
2019-04-30 05:14:51 SERVER -> CLIENT: 220-server.issgroups.org ESMTP Exim 4.91 #1 Tue, 30 Apr 2019 07:14:51 +0200 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
2019-04-30 05:14:51 CLIENT -> SERVER: EHLO wastetkheer.com
2019-04-30 05:14:51 SERVER -> CLIENT: 250-server.issgroups.org Hello wastetkheer.com [138.201.107.252]250-SIZE 52428800250-8BITMIME250-PIPELINING250-AUTH PLAIN LOGIN250-STARTTLS250 HELP
2019-04-30 05:14:51 CLIENT -> SERVER: STARTTLS
2019-04-30 05:14:51 SERVER -> CLIENT: 220 TLS go ahead
SMTP Error: Could not connect to SMTP host.
2019-04-30 05:14:51 CLIENT -> SERVER: QUIT
2019-04-30 05:14:51
2019-04-30 05:14:51
SMTP Error: Could not connect to SMTP host.
Message could not be sent. Mailer Error: SMTP Error: Could not connect to SMTP host.
我正在尝试将SMTPDebug更改为1 &// $ mail-> isSMTP();
在本地主机而不是服务器中工作良好 我想问题出在SMTP身份验证,但是我找不到问题。
答案 0 :(得分:0)
请在发布之前进行搜索,因为该问题已被多次回答。
在STARTTLS之后立即失败,表明TLS错误。这在gmail中非常常见,因为它们的CA根证书大约在一年前更改为许多较旧的操作系统中不存在的证书。它适用于localhost,因为您的本地操作系统没有过时的CA证书。
阅读the troubleshooting guide,该书确切地告诉您如何处理。
这还可能取决于您的ISP将SMTP通信重定向到其自己的邮件服务器,从而导致证书名称不匹配-该指南提供了诊断确切问题的方法。
答案 1 :(得分:-1)
尝试更换 $ mail-> SMTPSecure ='tls'; 至 $ mail-> SMTPSecure ='ssl';
//因为此错误后服务器退出: 2019-04-30 05:14:51服务器->客户:220 TLS继续进行 SMTP错误:无法连接到SMTP主机。
所以尝试