Стоит посмотреть 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 пусть и с неуспешным статусом.