Отправка почты PHP с сервера Windows


У меня есть форма на моей странице. Когда пользователь нажимает кнопку "Отправить", он должен отправить электронное письмо с данными, которые он ввел в форму. До недавнего времени форма размещалась на сервере Linux, и у меня не было с ней проблем - почта была отправлена и получена. Недавно мне пришлось перейти на общий сервер Windows, и с момента переезда почта не отправляется. Вот код, который должен был отправить письмо:

function send_contact_form($strName, $strEmail, $strPhone, $strMessage)
{
$to = '[email protected]';
$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);
}
Author: Igal, 2013-06-16

2 answers

В среде Windows PHP использует SMTP вместо двоичной отправляемой почты Linux (или ее замены)

Вам необходимо отредактировать php.ini в соответствии с этой страницей, чтобы иметь возможность отправлять электронную почту с помощью функции mail().

 6
Author: Fluff, 2017-09-18 12:18:26

В Linux PHP использует приложение под названием sendmail. Конечно, в Windows подобного приложения нет. Как сказано в файле php.ini, чтобы иметь возможность работать с почтовой функцией, вам необходимо настроить координаты почтового сервера. Если у Вас нет почтового сервера, отправлять электронные письма с PHP невозможно. Конечно, вы могли бы использовать какой-нибудь внешний сервер, например gmail.

 0
Author: Flash Thunder, 2013-06-16 17:22:57