Добрый день! Опишу кейс: 1) получаю письмо на email 2) парсится тело письма и оттуда берется номер телефона 3) письмо пересылается вместе с вложениями на другой почтовый ящик 4) оттуда приходит ответ с подтверждением, в теме письма содержится "порядковый" номер 5) тема письма парсится и берется оттуда номер 6) на номер телефона из шага 2 отправляется СМС с номером из шага 5. Реализовать всё разом и скопом нет необходимости, на данный момент встрял на шаге 2. Перегуглил кучу разных способов, в основном все сводятся к настройкам почтового сервера, чтобы он при получении письма мог выполнять скрипт. Такой возможности у меня нет (предположим почта просто на яндексе). Возник вопрос: как и чем можно получить и распарсить тело письма? Видел приложение для Mozilla Thenderbird, которое может при получении письма выполнять java-скрипт, но нигде в мануалах к нему нет информации, как скрипту передать тело письма. Как вообще можно реализовать данный кейс? Главное 1-2 пункт. Остальное в принципе уже знаю как сделать.
Получить письма с того же яндекса вроде можно через imap, используя готовые библиотеки https://github.com/barbushin/php-imap https://github.com/ddeboer/imap и т.д. Можно настроить на хсотинге cron, чтобы раз в 5 минут, запускал скрипт PHP который будет заходить на почту и получать не про читаные письма Если телефон в определённом формате, 7 цифр например и других 7 цифр в тексте нет, то можно получить с помощью preg_match функции и простого регулярного выражения не знаю если библиотеки на PHP поддерживают скачивание вложений по imap, но переслать можно через PHPMailer или SwiftMailer по SMTP примерно как в пункте два как в пункте два у сервисов которые за деньги отправляют СМС есть API с примерами на PHP
Спасибо, но такой сложный путь я уже продумывал (собирать почту, крон на сервере...). Но мне нужно обработать письмо сразу после получения, не выгружая всю почту. Т.е. пришло письмо - обработалось, пришло другое - обработалось. Поэтому вариант с выгрузкой не вариант.
сразу это за какой промежуток времени? Если ты используешь почту от гугла, яндекса, то как они тебя будут оповещать о том что пришло письмо?
Вот я и интересуюсь как можно задуманное реализовать. Например программой какой-нибудь. Например, то же самое расширение для тандерболта, которое позволяет запускать скрипт при получении письма (но без передачи параметров в скрипт). По сути это может быть какая-либо программа, установленная на всегда включенном ПК...
Не знаю. Мне сложно реализовывать выгрузку почты с ящика каждый N секунд и парсить все письма, которые пришли. Для этого нужно добавлять цикл, который будет проходить по всем полученным письмам... Никакой, более простой реализации, нет?
Есть IMAP IDLE https://www.isode.com/whitepapers/imap-idle.html он по идее в режиме реального времени должен оповестить о входящей почте, думаю и на PHP можно сделать