最近我建了一个网站,一切都很顺利,但联系方式并不是发邮件。我是使用jquery、php和PHPMailer php库的组合来完成的。请帮帮我。以下是代码:
php在一个文件夹中名为contact.php的单独文件中:
<?php
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '<myemail>';
$mail->Password = '<secretpassword>';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$to = "<myemail>";
$from = $_POST['email'];
$first_name = $_POST['name'];
$subject = "Contact form";
$message = "Message: " . $_POST['textans'];
$mail->SetFrom($from, $first_name);
$mail->addAddress('<myemail>', 'Diode');
$mail->Subject = $subject;
$mail->Body=$message;
$mail->send();
?>根据我所做的挖掘,数据被传递给PHP,但是没有被发送。我正在使用网站上的AWS EC2。我检查了telnet的连接,但是telnet可以工作,所以我确信主机是可访问的。I也关闭了双因素验证和打开了安全性较差的应用。
我试过: 1)将端口更改为465。2)关闭自动图集。3)检查openssl是否未注释。4)检查windows防火墙和aws安全中的入站和出站规则。
它在浏览器调试器上给出了一个post错误(500内部服务器错误)。以下是PHP日志:
[<dateandtime> Asia/Kolkata] PHP Fatal error: Uncaught PHPMailer\PHPMailer\Exception: SMTP Error: Could not connect to SMTP host. in <somelocation>\PHP\src\PHPMailer.php:2129
Stack trace:
#0 <somelocation>\PHP\src\PHPMailer.php(1953): PHPMailer\PHPMailer\PHPMailer->smtpConnect(Array)
#1 <somelocation>\PHP\src\PHPMailer.php(1635): PHPMailer\PHPMailer\PHPMailer->smtpSend('Date: Th...', ' Name: N...')
#2 <somelocation>\PHP\src\PHPMailer.php(1468): PHPMailer\PHPMailer\PHPMailer->postSend()
#3 <somelocation>\PHP\contact.php(37): PHPMailer\PHPMailer\PHPMailer->send()
#4 {main}
thrown in <somelocation>\PHP\src\PHPMailer.php on line 2129它还可以在XAMPP上的localhost上工作!谢谢你提前帮忙。
发布于 2021-04-15 07:29:34
首先,我尝试运行您的代码,这给我的SMTP类没有找到错误,所以我添加了另一个use语句use PHPMailer\PHPMailer\SMTP;,以避免未来的错误。
然后,我得到了同样的错误,并通过生成一个App来解决它,这是2步验证帐户所必需的。
我并没有真正修改您的代码,但是我在本地运行它。
如果没有工作,您可以设置调试模式$mail->SMTPDebug = 3;以获得更多详细信息,我还建议您检查SSL/TLS协议,我从下面的线程中看到了该协议:PHPMailer: SMTP Error: Could not connect to SMTP host。
希望我没有浪费你的时间..。
https://stackoverflow.com/questions/67103504
复制相似问题