Вот так выглядит функция отправки письма:
function send_message($array) {
global $alias;
global $settings;
$message = "
<p>" . $settings["mail"]["message"] . "</p>
<br>
<p><strong>Дата обращения: </strong>" . date('d.m.Y H:i:s') . "</p>
";
foreach($array as $field) {
$name = $field["name"];
$value = $field["value"];
if ($name !== "g-recaptcha-response" && $name !== "agreement") {
$message .= "<p><strong>" . $alias[$name] . ":</strong> " . $value . "</p>";
}
};
$message .= "<br><br><p>Это письмо сгенерировано автоматически. Пожалуйста, не отвечайте на него.</p>";
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.yandex.ru';
$mail->SMTPAuth = true;
$mail->Username = $settings["mail"]["auth"]["username"];
$mail->Password = $settings["mail"]["auth"]["password"];
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->CharSet = "UTF-8";
$mail->Subject = $settings["mail"]["subject"];
$mail->SetFrom($settings["mail"]["sender"]["address"], $settings["mail"]["sender"]["alias"]);
$mail->MsgHTML($message);
$mail->AddAddress($settings["mail"]["receiver"]["address"], $settings["mail"]["receiver"]["alias"]);
$mail->Send();
};
Все данные попадают верные. Этот код работает на локальном сервере и отлично отправляет письма. А на самом сайте работать не хочет. Происходит вот что: отрабатывает весь код до $mail->Send(); и на этом моменте начинается бесконечная отправка письма или что-то вроде того. В общем, ответ от сервера не приходит или приходит через несколько минут (успешный). Почему так происходит и что с этим делать?