I saw many similar questions, like my, but never the one, which helps me. I am trying PHPMailer from https://github.com/PHPMailer/PHPMailer. I was testing it with xampp server and everything worked fine. But when I uploaded whole phpMailer on my page, some issues appeared. In my log file, I am still getting this error:
PHP Fatal error: Uncaught PHPMailer\PHPMailer\Exception: SMTP Error: Could not authenticate. in /web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php:2089 Stack trace: #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 {main} thrown in web/test/vendor/phpmailer/phpmailer/src/PHPMailer.php on line 2089`
Does anybody know, how to fix this? I am pretty sure my log in credentials are OK. The weird thing is that it is working on xampp fine, but not on my page. I am using the newest PHPMailer, and I didnt edited anything, so you can see the code on PHPMailer github. If someone needs additinal information, just let me know. Thank you so much!
EDIT: Here is my idk.php file (the code snippet didn't worked fine, but I think you can read it):
<?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();
}
?>
Maybe I should say that I am using .htaccess file on my web hosting. I am not sure, but maybe this is the reason, why I am getting those errors. When I am trying to access the idk.php file, I am getting http error 500. I did some research and there is some connection beetween this 500 error and htaccess file.
EDIT: I turned off less secure apps, but it still does not work. I changed port to 465 and now the error in on line 2076 in this file: https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php