Всем доброго времени суток! Возникла похожая проблема – с формы на сайте не приходят письма.
Могу ошибаться, но судя по всему, проблема в этой строке: CEvent::SendImmediate("V1RT_FORMS",SITE_ID,$arFields);
Код, вставляющий форму на сайт:
Скрытый текст
< ?require_once($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/v1rt-forms/vf-feedback_custom.php");?>
Файл-обработчик vf-feedback_custom.php:
Скрытый текст
<? $name = htmlspecialchars ( $_POST [ "vf-feedback__name" ]); $tel = htmlspecialchars ( $_POST [ "vf-feedback__tel" ]); $email = htmlspecialchars ( $_POST [ "vf-feedback__email" ]); $vozrast = htmlspecialchars ( $_POST [ "vf-feedback__vozrast" ]); $napravlenie = htmlspecialchars ( $_POST [ "vf-feedback__napravlenie" ]); if (! strlen ( $name ) || ! strlen ( $tel )) { die ( "ERROR 001" ); } require_once ( $_SERVER [ 'DOCUMENT_ROOT' ] . "/bitrix/modules/main/include/prolog_before.php" ); $formData = "<b>Имя:</b> $name <br>" ; $formData .= "<b>Телефон:</b> $tel <br>" ; $formData .= "<b>E-mail:</b> $email <br>" ; $formData .= "<b>Возраст ребенка:</b> $vozrast <br>" ; $formData .= "<b>Направление занятий:</b> $napravlenie <br>" ; $formData .= "<b>Страница-источник:</b> " . $_SERVER [ 'HTTP_REFERER' ]; $arFields = [ "EMAIL_TO" => " quizi@bk.ru " , "FORM_DATA" => $formData ]; CEvent :: SendImmediate ( "V1RT_FORMS" ,SITE_ID, $arFields ); die ( "OK" );
Код самой формы:
Скрытый текст
< div class = "vf-feedback" > < h2 > Запишитесь на Пробное занятие </ h2 > < form method = "post" action = "" class = "vf-feedback__custom" > < div class = "row" > < div class = "col-lg-6" > < label for = "vf-feedback__name" class = "vf-feedback__label" > Ваше имя: < span class = "vf-req" > * </ span ></ label > < input type = "text" name = "vf-feedback__name" id = "vf-feedback__name" value = "" class = "vf-feedback__input" required > </ div > < div class = "col-lg-6" > < label for = "vf-feedback__vozrast" class = "vf-feedback__label" > Возраст ребенка: </ label > < select name = "vf-feedback__vozrast" > <?php $dropdown = array ( "Выберите возраст" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" , "11" , "12" , "13" , "14" , "15" ); foreach ( $dropdown as $n => $opt ) { printf ( '<option value="%s">%s</option>' , $n , $opt ); } ? > </ select > </ div > </ div > < div class = "row" > < div class = "col-lg-6" > < label for = "vf-feedback__tel" class = "vf-feedback__label" > Ваш телефон: < span class = "vf-req" > * </ span ></ label > < input type = "text" name = "vf-feedback__tel" id = "vf-feedback__tel" value = "" class = "vf-feedback__input" required > </ div > < div class = "col-lg-6" > < label for = "vf-feedback__napravlenie" class = "vf-feedback__label" > Направление занятий: </ label > < select name = "vf-feedback__napravlenie" > < option value = "Выберите направление" > Выберите направление </ option > <? if ( CModule :: IncludeModule ( "iblock" )) { $arSelect = Array ( "ID" , "NAME" , "PROPERTY_CODE" ); $arFilter = Array ( "IBLOCK_ID" => 2 , "ACTIVE" => "Y" ); $el_tree = array (); $res = CIBlockElement :: GetList ( Array ( "SORT" => "DESC" ), $arFilter , false , false , $arSelect ); while ( $ob_arr = $res -> Fetch ()) { $el_tree [] = $ob_arr ; } foreach ( $el_tree as $el ) { printf ( '<option value="%s">%s</option>' , $el [ "NAME" ], $el [ "NAME" ]); } } ? > </ select > </ div > </ div > < div class = "row" > < div class = "col-lg-6" > < label for = "vf-feedback__email" class = "vf-feedback__label" > Ваш E-mail: </ label > < input type = "email" name = "vf-feedback__email" id = "vf-feedback__email" value = "" class = "vf-feedback__input" > </ div > </ div > < label class = "vf-feedback__agreement" for = "vf-feedback__agree-check" > < input type = "checkbox" checked = "" class = "vf-agree-check" id = "vf-feedback__agree-check" > Нажимая кнопку "Отправить", я принимаю условия < a href = "/soglashenie/" target = "_blank" > пользовательского соглашения </ a > </ label > < div class = "vf-feedback__sending-status" ></ div > < button type = "submit" class = "btn btn-primary vf-feedback__button vf-agree-check__button" > Отправить </ button > </ form > </ div >
Папку со спамом проверял – ничего.
Единственный раз, когда письмо пришло (при этом попало в спам) – когда делал запрос через командную панель в админке:
Код $headers = "From: test@". $_SERVER['HTTP_HOST'] . "\r\n" .
"Reply-To: test@". $_SERVER['HTTP_HOST'] . "\r\n" .
"X-Mailer: PHP/" . phpversion();
if( mail("quizi@bk.ru","my test theme","my test message",$headers) ){
echo "Почта работает!";
}else{
echo "Почта не работает! Скорее всего проблема в sendmail";
}
Помогите найти решение! В Битриксе новичок. Возможно даже, проблема в другом месте.
Ссылка на сайт с формой: