@ikfah012
Дебил

Почему перестали отправляться письма после переезда хостинга?

Добрый день.
Перенёс сайт на другой хостинг и перестали отправляться письма с формы.
Нашёл в консоли следующее:
Notice: Undefined variable: message in /var/www/vhosts/mail.php on line 22

Код выглядит следующим образом:
<?php
error_reporting(E_ALL);
include 'mysql.php';
$method = $_SERVER['REQUEST_METHOD'];
//Script Foreach
$c = true;
if ( $method === 'POST' ) {

	$project_name = trim($_POST["project_name"]);
	$admin_email  = trim($_POST["admin_email"]);
	$form_subject = trim($_POST["form_subject"]);

	foreach ( $_POST as $key => $value ) {
		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
			$message .= "
			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
			<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
			<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
		</tr>
		";
	}
}
} else if ( $method === 'GET' ) {

	$project_name = trim($_GET["project_name"]);
	$admin_email  = trim($_GET["admin_email"]);
	$form_subject = trim($_GET["form_subject"]);

	foreach ( $_GET as $key => $value ) {
		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
			$message .= "
			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
			<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
			<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
		</tr>
		";
	}
}
}

$message = "<table style='width: 100%;'>$message</table>";

function adopt($text) {
	return '=?UTF-8?B?'.Base64_encode($text).'?=';
}

$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/html; charset=utf-8" . PHP_EOL .
'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
'Reply-To: '.$admin_email.'' . PHP_EOL;

mail($admin_email, adopt($form_subject), $message, $headers );


?>

Что могло случиться?
Версия php одинаковая
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
купил глушилку мабил: теперь в маршрутке тишина
var_dump()
Ответ написан
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Каждая строка должна быть отделена символом CRLF (\r\n). Строки не должны быть длиннее 70 символов.
Ответ написан
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
В коде, который Вы привели в вопросе, на 22 строке нет переменной $message.
Зато она встречается первый раз на строке 15 и сразу идёт конкатенация строки, но переменная не определена.
В первых строках своего кода попробуйте её инициализировать таким образом.
$message = '';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Aitarget Москва
от 100 000 руб.
SMART TECHNOLOGIES Костанай
от 30 000 до 40 000 руб.
Click Санкт-Петербург
от 110 000 до 150 000 руб.