Отправка почты 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.

Другие вопросы по тегам