У меня есть контактная форма PHPMailer, которая отправляет данные в учетную запись GMail. Он делает это успешно, когда сайт работает на локальном хосте, но я получаю следующую ошибку, когда я загрузил веб-страницу на сервер и попытался использовать форму контакта: Сообщение не может быть отправлено.Mailer Error: SMTP connect() не удалось ,Форма обратной связи PHPMailer не работает на сервере, но работает на localhost?
Я загружаю файлы через Plesk на сервер, хотя я сомневаюсь, что это актуально. Вот код:
<form action="currentFile.php" method="POST">
Full Name:<input required type="text" name="fullname"/>
<input type="submit"/>
</form>
<?php
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'pass';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->addAddress('[email protected]');
$mail->Subject = 'Contact Form';
$mail->Body = "Test";
$mail->AltBody = "Test";
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>
Я считаю изменение $mail->isSMTP();
в $mail->isMAIL();
нет никакой разницы. Что я могу сделать, чтобы данные формы отправляются по электронной почте, когда сайт находится в сети (на моем сервере)?
Примечание. Используемая учетная запись и пароль gmail должны быть «поддельными» в приведенном ниже коде. Я намерен настроить таргетинг на учетную запись GMail, и я успешно установил адрес и пароль Google Mail, поэтому скрипт успешно запущен на локальном хосте.
спасибо.
Вы уверены, что порт 587 открыт (для исходящих соединений) на вашем сервере? – Dekel
@Dekel Я арендую сервер у компании, это что-то, о чем я должен связаться с ними? Я попытался использовать порт 25 и порт 465, альтернативные варианты GMail, они также не работали на сервере. Между тем, 25 и 587 работают нормально на локальном хосте. – H3ll0
Нет, если на арендованном сервере у вас должен быть root-доступ, чтобы открыть порт в брандмауэре. Метод, который будет зависеть от установленной ОС, панели управления и т. Д. Например, ubuntu использует ufw, любая ОС с установленной WHM/Cpanel должна иметь возможность устанавливать CSF (ConfigServerFirewall), который доступен через панель WHM – Chris