Pathologic
Точнее хостер может сказать почему она не отправляется
Aleksandr
хостер говорит что все нормально
Aleksandr
и не могу понять почему тупейший сниппет с mail() отправляет, а formlister - нет
Pathologic
потому что в сниппете с mail() ты отправляешь без четвертого параметра
Pathologic
то есть не так, как отправляет phpmailer
Pathologic
или пятый параметр, не помню уже
Pathologic
в общем там будет что-то типа -fадрес отправителя
Pathologic
вот с этим адресом у тебя и проблема
Владимир
Можете подсказать почему с антиспам решением https://modx.ru/novosti-i-stati/article/382/ письма не отправляются вообще? Или есть другие решения против спама (без капчи) ?
Aleksandr
в общем там будет что-то типа -fадрес отправителя
а этот адрес нельзя указать в параметрах или конфигах того же phpmailer'а?
Aliaksandr
Ты б для начала простую вещь выяснил, где это письмо пропадает. На этапе вылета от хостера он его банит либо на этапе влета в ящик его не пускает)
Aliaksandr
По моему опыту под 90% ситуаций "должно отправляться, но нет" было из-за кривой информации в return path. Тупой mail() его может и не ставить, а "умный" phpmailer может ставить, да не тот)
Aliaksandr
Мне помнится, что это был не replyTo, а именно Sender
Aleksandr
в общем там будет что-то типа -fадрес отправителя
нашел реализацию в core/src/Mail.php - добавил 5-й параметр в mail() в тестовом сниппете sprintf("-oi -f %s", $from) - письмо благополучно ушло через тестовый сниппет
Aleksandr
Мне помнится, что это был не replyTo, а именно Sender
так где мне это смотреть? в исходниках FormLister'а? я через параметры указывал &to=валидное мыло &replyTo=[(emailsender)] а &from по-умолчанию берет мыло из emailsender
Aliaksandr
Сильно сомневаюсь, скорее MODxMailer, а это тот же phpmailer
Aleksandr
при включенном debug FormLister вообще никаких ошибок не вываливает в event log
Aleksandr
хоть бы пнул в правильную сторону
Aleksandr
includes/controls/phpmailer оно?
Aliaksandr
Уже б давно залез в код да глянул
Aliaksandr
Вроде в папке lib/Helpers есть немного допиленный вариант для мэйла, как называется не помню
Aleksandr
Уже б давно залез в код да глянул
так я вот и лазю по коду
Aliaksandr
Вот его скорее всего фл и использует
Aleksandr
ищу исходники
Aliaksandr
так я вот и лазю по коду
Так лазь по коду контроллера form из фл для того, чтобы узнать, как он отправляет)
Aliaksandr
А не по кор/срц
Aliaksandr
Я первым делом пробую отправить на яндекс, туда обычно все приходит, если хостер не забанит отправку))
Aliaksandr
А то мэйл.ру/гмэйл помешались уже, хотя в итоге спама на них меньше не стало:)
Aleksandr
Я первым делом пробую отправить на яндекс, туда обычно все приходит, если хостер не забанит отправку))
так какая собственно разница gmail или яндекс, если именно через formlister не уходит, а напрямки в сниппете все уходит и доставляется
Aleksandr
я первый раз вообще с такой проблемой столкнулся
Aliaksandr
так какая собственно разница gmail или яндекс, если именно через formlister не уходит, а напрямки в сниппете все уходит и доставляется
Оно может "не уходить" двумя способами, я же писал. Либо хостер ловит на вылете либо ящик входящий банит на влете)
Aliaksandr
И для второго варианта в яндекс обычно все прилетает, а в гмэйл не все
Aliaksandr
... а через неделю окажется, что просто указан неправильный &to ))
Aleksandr
нет, &to указан правильный
Aleksandr
и валидный
Aleksandr
мое мыло
Aleksandr
а from и replyto как и emailsender - внутренняя почта на хостинге
Aleksandr
отправитель и получатель не меняется
Aleksandr
меняется способ отправки
Aleksandr
через самописный сниппет используя mail() напрямую - все уходит
Aleksandr
используя formlister - вываливается ошибка Message failed to send.
Aliaksandr
Ну значит не повезло)
Aleksandr
понятно
Dmytro
понятно
да залезь в сам формлисстер, посмотри как отправляет и добавь к мейлеру необходимые заголовки
Dmytro
я просто пропустил весь опус, там отправляется через мейл или смтп?
Aleksandr
без авторизации
Aleksandr
<?php function _mail ($from, $to, $subj, $what) { return mail($to, $subj, $what, "Mime-Version: 1.0\n". "Date: ".date('r')."\n". "From: $from\n". "Reply-To: $from\n". "Content-Type: text/plain; charset=UTF-8\n". "Content-Transfer-Encoding: 8bit", sprintf("-oi -f %s", $from) ); } dump(_mail ('[(emailsender)]', 'email@gmail.com', '1', 'пишу письмо.'));
Aleksandr
вот сниппет
Aleksandr
он пашет
Aliaksandr
А потом начинают на пятый лень скрины наконец делать, а там аякс, завернутый в иф и разбавленный phx)
Aleksandr
Dmytro
где он лежит?
чесно - хз)) просто поищипо файлам формлистера текст "phpmailer"
Aleksandr
чесно - хз)) просто поищипо файлам формлистера текст "phpmailer"
в том то и дело нашел только core/vendor/phpmailer/phpmailer/src/PHPMailer.php
Aliaksandr
Сделай то же самое через loadExtension('MODxMailer')
Dmytro
find ./ -iname "*phpmailer*"
то я тупанул)) ищи MODxMailer
Aleksandr
Сделай то же самое через loadExtension('MODxMailer')
мне его в функцию или в корень сниппета положить?
Aleksandr
<?php function _mail ($from, $to, $subj, $what) { loadExtension('MODxMailer'); return mail($to, $subj, $what, "Mime-Version: 1.0\n". "Date: ".date('r')."\n". "From: $from\n". "Reply-To: $from\n". "Content-Type: text/plain; charset=UTF-8\n". "Content-Transfer-Encoding: 8bit", sprintf("-oi -f %s", $from) ); } dump(_mail ('[(emailsender)]', 'email@gmail.com', '1', 'пишу письмо.'));
Aleksandr
или так <?php loadExtension('MODxMailer'); function _mail ($from, $to, $subj, $what) { return mail($to, $subj, $what, "Mime-Version: 1.0\n". "Date: ".date('r')."\n". "From: $from\n". "Reply-To: $from\n". "Content-Type: text/plain; charset=UTF-8\n". "Content-Transfer-Encoding: 8bit", sprintf("-oi -f %s", $from) ); } dump(_mail ('[(emailsender)]', 'email@gmail.com', '1', 'пишу письмо.'));
Aliaksandr
Ты знаешь как пользоваться phpmailer?
Aliaksandr
$mail=$modx->loadExtension('MODxMailer'); возвращает тебе в $mail его объект, в котором уже все есть. Осталось добавить адрес, текст и отправить)
Aleksandr
надо без $mail
Aleksandr
просто $modx->loadExtension('MODxMailer');
Aleksandr
и далее уже параметры забивать $modx->mail->setFrom("[(emailsender)]", 'First Last');
Aleksandr
ErrorInfo пустую строчку возвращает
Aleksandr
string(0) ""
Aleksandr
это какая-то жесть
Aleksandr
$modx->mail->Sender = "[(emailsender)]"; $modx->mail->addCustomHeader('Sender', "ACME <[(emailsender)]>"); не помогло
Aleksandr
а как вообще увидеть ошибку?
Aleksandr
почему она пустая
Aliaksandr
Ну вот видишь, не только с фл не клеится)
Aliaksandr
Да, с mail я дал маху с телефона, он сам в modx->mail влетает)
Aleksandr
а где конфиг phpmailer'а?
Aleksandr
даже manager/includes/config.inc.php пустой