Нет такого свойства как Porto
; это просто Port
, поэтому он будет использовать порт по умолчанию 25.
Не делай этого:
$mail->setFrom($_POST['EmailReser']);
это подделка и gmail не позволит вам это сделать. Поместите свой адрес в адрес отправителя (как вы делаете для электронной почты администратора) и отправьте отправителя в ответ (как вы уже делаете).
Создание двух экземпляров PHPMailer расточительно: создайте один и отправьте оба сообщения вместе с ним. Это также позволит вам использовать keepalive, что ускорит отправку.
Вы используете старую версию PHPMailer, поэтому я обновил ваш скрипт, чтобы использовать текущую версию, используя composer для его загрузки - если вы еще не используете его, сейчас самое время изучить.
Он также не будет отправлять, если свойство адреса электронной почты отправителя не является действительным адресом, который вы не уловили раньше.
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require '../vendor/autoload.php';
$mail = new PHPMailer(true); //Enable exceptions
try {
//Set all common properties
$mail->SMTPKeepAlive = true;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = 'admin@gmail.com';
$mail->Password = '***';
$mail->isHTML(true);
//Set up recipients
$mail->setFrom('admin@gmail.com');
$mail->addAddress('admin@gmail.com');
$mail->addReplyTo($_POST['EmailReser']);
$mail->Subject = 'New message from your website';
$mail->Body = "message from user";
//If this fails, it will be caught below, so no need for an `if`
$mail->send();
//Re-use existing instance
//Reset recipients, don't need to touch reply-to or from address
$mail->clearAddresses();
$mail->addAddress($_POST['EmailReser']);
$mail->Subject = 'Your message was received';
$mail->Body = "message from admin";
$mail->send();
header('Location: index.php?cmd=home');
} catch (Exception $e) {
echo 'Something went wrong. Try again ' . $mail->ErrorInfo;
}