Стоит посмотреть tcp пакеты отправленные и полученные. Почтовый сервер на который отправляются письма может ответить ошибкой, которая будет отражена во входящем tcp пакете с почтового сервера. При этом почтовый клиент типа Sendmail вернет true - письмо отправлено.
Mikhail Proskurnin пишет: Почтовый сервер на который отправляются письма может ответить ошибкой, которая будет отражена во входящем tcp пакете с почтового сервера. При этом почтовый клиент типа Sendmail вернет true - письмо отправлено.
Но ведь при этом какие-то записи в b_event должны же появиться? Дело в том, что у меня в b_event - ничего не появляется.
Работа с почтовой системой состоит из следующих этапов:
Создание типа почтового события. Тип почтового события может быть создан с использованием функции CEventType::Add, либо на странице Типы почтовых событий.
Создание почтового шаблона. Создание почтового шаблона доступно в административном меню "Почтовые шаблоны", а также при использовании функции CEventMessage::Add.
Создание почтового события. Почтовое событие может быть создано только функцией CEvent::Send.
В конце выполнения каждой страницы, будет автоматически вызвана функция CEvent::CheckEvents, основные задачи которой:
выбрать из таблицы b_event необработанные почтовые события
сгенерировать по ним E-Mail сообщения (письма)
отправить их
записать результат их отправки в таблицу b_event в поле SUCCESS_EXEC, используя одно из следующих обозначений:
Y - все письма по всем почтовым шаблонам были успешно отправлены
F - все письма по всем почтовым шаблонам не смогли быть отправлены
P - часть писем отправлена успешно, часть писем - безуспешно
Mikhail Proskurnin пишет: Создание почтового события. Почтовое событие может быть создано только функцией CEvent::Send .
Всё равно не понял.. я так думал, что CEvent::Send должна выполняться при отправке почты, если там стоит галочка "Отправлять результаты по email" и с шаблонами всё в порядке. Или имеете ввиду, что при заполнении формы почтовые события не формируются и запись в b_event появиться не должна?
CEvent::Send( 'ORDER_USA' , 's1' , $arEventField , "N" ) ;
который, как видите, успешно сработал и письмо я получил.
Как раз CEvent::Send то выполняется - записи в b_events добавляются и даже статусы успешные.
Не срабатывает отправка писем именно при сабмите формы, причём даже в b_events ничего не появляется. Как будто галка, подключающая почтовый шаблон, не стоит в настройках формы... но она стоит, я даже скрин сделал. И сам шаблон активен
Делаешь форму, пишешь скрипт для передачи в обработчик данных из формы, а дальше вот тебе пример с коментами обработчика
Часто письма не приходят из за кодировки, была беда целая что только не пробовал все пишется все круто, а на почте писем нет, выделил первым блоком. ну а ниже делаем переменные для почтовой формы а потом запускаем почтовое событие.
Николай Ашаев пишет: Делаешь форму, пишешь скрипт для передачи в обработчик данных из формы, а дальше вот тебе пример с коментами обработчика
Часто письма не приходят из за кодировки, была беда целая что только не пробовал все пишется все круто, а на почте писем нет, выделил первым блоком. ну а ниже делаем переменные для почтовой формы а потом запускаем почтовое событие.
Думаю исчерпывающе!
Дружище)) Спасибо тебе за пример, но к чему городить такой огород, если всё должно работать без единой строчки кода? Ещё раз - в битриксе есть возможность отправлять письма автоматически при сабмите формы. У меня это работает на другом проекте, а здесь почему-то не работает. Причём дело не в кодировках и почтовых серверах - в этом случае я же всё равно должен увидеть новые записи в b_events пусть и с неуспешным статусом.
Beef пишет: я так думал, что CEvent::Send должна выполняться при отправке почты, если там стоит галочка "Отправлять результаты по email"
Цитата
Beef пишет: Как раз CEvent::Send то выполняется - записи в b_events добавляются и даже статусы успешные.
Я вам правильно ответил, исходя из первого вашего поста:
Цитата
Mikhail Proskurnin пишет: У вас же CEvent::Send не выполняется и почтовые события не формируются.
В первом посте я не утверждал, что у меня CEvent::Send не выполняется, а предположил он наверно должен выполняться при сабмите. Ну сейчас то вы меня поняли? Есть идеи?
Парни, я сутки потратил на это, но проблему решил. Идем в настройки модулей, модуль веб-формы, снимаем галку использования упрощенного режима редактирвоания. После этого идете редактировать свою форму, там появиться вкладка "дополнительно", в ней добавлен шаблон, но не стоит галка на против него, надо просто поставить галку и письма начнут уходить.
1C@svnord.ru написал: Парни, я сутки потратил на это, но проблему решил. Идем в настройки модулей, модуль веб-формы, снимаем галку использования упрощенного режима редактирвоания. После этого идете редактировать свою форму, там появиться вкладка "дополнительно", в ней добавлен шаблон, но не стоит галка на против него, надо просто поставить галку и письма начнут уходить.
После этого идете редактировать свою форму, там появиться вкладка "дополнительно", в ней добавлен шаблон, но не стоит галка на против него, надо просто поставить галку и письма начнут уходить.
Где вкладка должна появиться, где свою форму надо отредактировать?
1C@svnord.ru написал: Парни, я сутки потратил на это, но проблему решил. Идем в настройки модулей, модуль веб-формы, снимаем галку использования упрощенного режима редактирвоания. После этого идете редактировать свою форму, там появиться вкладка "дополнительно", в ней добавлен шаблон, но не стоит галка на против него, надо просто поставить галку и письма начнут уходить.
Помогло, спасибо.
Это, конечно, жесть какая-то, на дев сервере связка сама сформировалась, на продакшне только руками.
1C@svnord.ru написал: Парни, я сутки потратил на это, но проблему решил.Идем в настройки модулей, модуль веб-формы, снимаем галку использования упрощенного режима редактирвоания.После этого идете редактировать свою форму, там появиться вкладка "дополнительно", в ней добавлен шаблон, но не стоит галка на против него, надо просто поставить галку и письма начнут уходить.
Мне это не помогло, по какой-то причине.
Но нашел так же простой вариант, это добавить в конце добавления результата CFormResult::Mail($RESULT_ID); Где $RESULT_ID это id возвращаемый CFormResult::Add