【发布时间】:2021-05-16 23:05:12
【问题描述】:
我看到了许多类似的问题,比如我的,但从来没有一个,这对我有帮助。我正在尝试来自https://github.com/PHPMailer/PHPMailer 的 PHPMailer。我正在使用 xampp 服务器对其进行测试,一切正常。但是当我在我的页面上上传整个 phpMailer 时,出现了一些问题。在我的日志文件中,我仍然收到此错误:
PHP 致命错误:未捕获 PHPMailer\PHPMailer\Exception:SMTP 错误:无法验证。在 /web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php:2089 堆栈跟踪: #0 web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php(1900): PHPMailer\PHPMailer\PHPMailer->smtpConnect() #1 web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php(1614): PHPMailer\PHPMailer\PHPMailer->smtpSend() #2 web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php(1447): PHPMailer\PHPMailer\PHPMailer->postSend() #3 web/test/idk.php(31): PHPMailer\PHPMailer\PHPMailer->send() #4 {主要} 在第 2089 行的 web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php 中抛出`
有谁知道,如何解决这个问题?我很确定我的登录凭据没有问题。奇怪的是它在 xampp 上运行良好,但不在我的页面上。我使用的是最新的 PHPMailer,我没有编辑任何东西,所以你可以在 PHPMailer github 上看到代码。 如果有人需要其他信息,请告诉我。 非常感谢!
编辑:这是我的 idk.php 文件(代码 sn-p 不能正常工作,但我认为你可以阅读它):
<?php
declare( strict_types = 1 );
// Check if the form is submitted
if ( isset( $_POST['submit'] ) ) {
// retrieve the form data by using the element's name attributes value as key
$subject = $_REQUEST['subject'];
$body = $_REQUEST['body'];
$sender = $_REQUEST['sender'];
require __DIR__ . '/vendor/autoload.php';
$mailer = new \PHPMailer\PHPMailer\PHPMailer( true );
//$mailer->SMTPDebug = \PHPMailer\PHPMailer\SMTP::DEBUG_SERVER tento řádek povoluje client -> server a server -> client zprávy
$mailer->isSMTP();
$mailer->Host = 'smtp.gmail.com';
$mailer->SMTPAuth = true;
$mailer->Username = 'my@mail.com';
$mailer->Password = 'myPassword';
$mailer->SMTPSecure = \PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
$mailer->Port = 587;
$mailer->setFrom( 'my@mail.com' );
$mailer->addReplyTo( 'my@mail.com' );
$mailer->addAddress( $sender );
$mailer->isHTML( true );
$mailer->Subject = $subject;
$mailer->Body = $body;
$mailer->send();
}
?>
也许我应该说我在我的虚拟主机上使用 .htaccess 文件。我不确定,但也许这就是我收到这些错误的原因。当我尝试访问 idk.php 文件时,我收到 http 错误 500。我做了一些研究,这个 500 错误和 htaccess 文件之间存在一些连接。
编辑: 我关闭了不太安全的应用程序,但它仍然无法正常工作。我将端口更改为 465,现在此文件中第 2076 行的错误:https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php
【问题讨论】:
-
请查看您的代码可能会有所帮助。当然删除密码
-
"我很确定我的登录凭据没有问题" 最好检查两次。请edit您的问题并粘贴
idk.php -
我粘贴了文件 idk.php。我检查了我的密码,一切都很好。正如我所说,它适用于 xampp...
-
阅读故障排除指南,尤其是关于 SMTP 阻止和重定向的部分。这可以解释身份验证失败。
标签: javascript php html email phpmailer