Отправка почты PHP с сервера Windows
У меня есть форма на моей странице. Когда пользователь нажимает кнопку "Отправить" - он должен отправить электронное письмо с данными, которые он ввел в форму. До недавнего времени форма размещалась на сервере Linux, и у меня не было с ней проблем - почта была отправлена и получена. Недавно мне пришлось перейти на общий сервер Windows, и с момента переезда почта не отправляется. Вот код, который должен отправить почту:
function send_contact_form($strName, $strEmail, $strPhone, $strMessage)
{
$to = 'mymail@mysite.com';
$subject = 'From the site';
$message = '<html lang="HE">
<head>
<title>
'.$subject.'
</title>
</head>
<body style="text-align:right; direction:rtl; font-family: Arial;">
Name: '.$strName.'<br>Email: '
.$strEmail.'<br>Phone: '.$strPhone
.'<br><br>Message: <br>'.$strMessage.'
</body>
</html>';
$email = $strEmail;
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$header .= "From: $email\r\nReply-To: $email" . "\r\n";
mail($to, $subject, $message, $header);
}
2 ответа
В среде Windows PHP использует SMTP, встроенный в бинарный sendmail Linux (или замену)
Вам необходимо отредактировать php.ini в соответствии с этой страницей, чтобы иметь возможность отправлять электронную почту с помощью функции mail().
В Linux PHP использует приложение под названием sendmail. Конечно, нет аналогичного приложения на Windows. Как говорится в файле php.ini, для работы с почтовой функцией необходимо настроить координаты почтового сервера. Если у вас нет почтового сервера, отправка писем из PHP невозможна. Конечно, вы можете использовать какой-нибудь внешний сервер, такой как gmail.