Отписка на php парсингом FBL письма с использованием imap функций
Есть файл с письмом(сырой, так как он ходит через smtp). Надо как то его обработать, чтобы получить текст письма отдельно в человекочитаемом формате, от кого, кому и т.п.
Идея — автоматический заказ пропусков. Т.е. человек пишет письмо с текстом
ф: Иванов
и: Петр
о: Иванович
д: 21.03.2014
Система его получает, обрабатывает извлекая из письма поля от кого, а также данные после ф:, и:, о:
1. Забрать сообщение c POP3/IMAP сервера
2. Обработать сообщение — получить в BASH-скрипте поля от, кому, и, самое главное, тело письма в человеческом варианте, чтобы потом его обработать awk, sed-ами, grep-ами и т.д.
Первый пункт реализован с помощью fetchmail, далее postfix+передача письма скрипту. Скрипт на bash письмо получает, но в сыром формате.
Хочется некое универсальную программу, которая бы независимо от кодировки и формата (простой текст/html) выдавала на выходе простой текст тела письма, без форматирования и всего остального.
В гугл пожалуйста сразу не отправляйте, вчера 5 часов убил, так до истины и не добрался. Есть какие-то парсеры на php и python, туманно описаные, но может как-то иначе?
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. «Парсинг входящих писем» | + / – |
Сообщение от михалыч (ok) on 02-Апр-14, 17:43 | |
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
2. «Парсинг входящих писем» | + / – |
Сообщение от Олег (??) on 02-Апр-14, 21:43 | |
Касаемо полей будет только ф: и: о: д: и п:(номер проходной) восприниматься. | |
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
3. «Парсинг входящих писем» | + / – |
Сообщение от ALex_hha (ok) on 03-Апр-14, 00:00 | |
| |
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
4. «Парсинг входящих писем» | + / – |
Сообщение от Аноним (??) on 03-Апр-14, 05:11 | |
Ну чтож ты на взлёте то . спортил пiсню | |
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору |
5. «Парсинг входящих писем» | + / – |
Сообщение от Pahanivo (ok) on 03-Апр-14, 06:30 | |
Ну дак это же логично, просто, понятно, проверено, работает. | |
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору |
6. «Парсинг входящих писем» | + / – |
Сообщение от Oleg (??) on 03-Апр-14, 07:34 | |
Для меня завести для 50 фирм логин и пароль каждой не проще. Тем более пароль от какой то формы можно легко передать подружке. Нужна именно.авторизация по емайл адресу. | |
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору |
7. «Парсинг входящих писем» | +1 + / – |
Сообщение от Pahanivo (ok) on 03-Апр-14, 09:32 | |
че ж вы такое курите на своей фирме. | |
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору |
10 . «Парсинг входящих писем» | + / – |
Сообщение от Аноним (??) on 03-Апр-14, 21:12 | |
Ой мамо . какой эпичекий . хммм . долбоклюй! Эффект от внедрения будет — ворота открытые всем | |
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору |
16 . «Парсинг входящих писем» | +1 + / – |
Сообщение от ALex_hha (ok) on 05-Апр-14, 01:00 | |
Каких 50 фирм? Один сайт на все офисы/филиалы > Нужна именно.авторизация по емайл адресу. ну если так важно именно email, кто вам мешает создать на этом сайте аутентификацию через почту? http://storage.sys-adm.org.ua/form/ формочка набрасывается за 10-15 минут, ну и на php что то типа Для упрощения понимания примера $imap_user/$imap_password сделал переменными, но никто не мешает получать их из формы. Чтоб совсем секурно вешаем форму на https. итого с отладкой и вылизыванием тратим 1-2 часа времени и спим спокойно. Если фирм много и каждая использует свой почтовый сервер, добавляем комбобокс выбора домена, как сделано в том же mail.ru | |
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору |
17 . «Парсинг входящих писем» | + / – |
Сообщение от Аноним (??) on 05-Апр-14, 07:42 | |
Действительно удобно! У лохов все пароли соберёшь | |
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору |
18 . «Парсинг входящих писем» | + / – |
Сообщение от ALex_hha (ok) on 05-Апр-14, 11:28 | |
Если лохи тебе не доверяют, тогда аб чем вообще речь | |
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору |
19 . «Парсинг входящих писем» | + / – |
Сообщение от ALex_hha (ok) on 05-Апр-14, 15:51 | |
Кстати никто ж не запрещает сделать аутентификацию по сертификатам, чтобы не было потом претензий и не поняток | |
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору |
8 . «Парсинг входящих писем» | + / – |
Сообщение от Sabakwaka (ok) on 03-Апр-14, 16:16 | |
Мне пришлось парсить несколько разноформатных выдач и при помощи пехепе дом елементс, а далее ручками, я навалял фреймворк, до которого ввв:меканайзу — как до Китая пешком. Полагаю, что на фрешпортс есть пара перловых или на пхп классес несколько заготовок, из которых за день спилится искомое. Выбери инструмент и читай его мануал. | |
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
9 . «Парсинг входящих писем» | + / – |
Сообщение от Mr. Mistoffelees on 03-Апр-14, 17:29 | |
Делал подобное тыщу лет тому назад. Реализация была через .qmail- файл на почтовом сервере, который позволяет прогнать все тело письма через внешний фильтр (скрипт); ну, а он уже сделает то, что вам нужно. Возможно, что-то подобное есть и в других почтовиках, не знаю — мне qmail вполне хватает на все случаи жизни. | |
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору |
11 . «Парсинг входящих писем» | + / – |
Сообщение от Pahanivo (ok) on 04-Апр-14, 09:04 | |
очень интересно, только dot-qmail это про вынос тела, а топик стартер ведет разговор о парсинге тела. | |
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору |
12 . «Парсинг входящих писем» | + / – |
Сообщение от Mr. Mistoffelees on 04-Апр-14, 11:06 | |
Посмотрите как работает | оператор в .qmail файлах. Он не мешает последующему local delivery. | |
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору |
13 . «Парсинг входящих писем» | + / – |
Сообщение от Pahanivo (ok) on 04-Апр-14, 13:23 | |
NAME DESCRIPTION It can instead write the mail to a different file or где тут хоть слово про парсинг непосредственно сообщения? | |
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору |
14 . «Парсинг входящих писем» | + / – |
Сообщение от ShyLion (ok) on 04-Апр-14, 15:44 | |
Все твое рабочее время будет посвящено допиливанию скрипта/программы для совместимости с тем или иным почтовым клиентом опеределенной версии а также с разгребанием необработанных писем всвязи с дебильными, автоматически добавляемыми подписями, приветствиями и т.п. И все это не считая того простого факта, что в поле From: в письме можно поставить хоть vv_putin, причем вариантов кодирования этого всего тоже масса. | |
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
15 . «Парсинг входящих писем» | + / – | ||||||||||||||||||
Сообщение от михалыч (ok) on 04-Апр-14, 19:31 | |||||||||||||||||||
А я согласен с вами. Принципиально то, что вы не контролируете как будет указаны фио. Вариантов масса. И что тогда делать? Как это всё учесть? Вот если бы была форма (на сайте, к примеру) с четырьмя полями для фио и даты и все, тогда бы другое дело. Грабли с кодировкой отпадут, с содержимым также. Отправка писем через SMTP на PHP 2 способаФункция mail() бывает блокируется на хостинге или самом сайте. Если писать в службу поддержки долго или не имеет смысла — придется отправлять письма через SMTP. СПОСОБ 1 — просто вставляем этот код на сайте с некоторыми настройками: \r\n»; if (!server_parse($socket, «220», __LINE__)) return false; fputs($socket, «HELO » . $config[‘smtp_host’] . «\r\n»); Не могу отправить HELO! ‘; Не могу найти ответ на запрос авторизаци. ‘; Логин авторизации не был принят сервером! ‘; Пароль не был принят сервером как верный! Ошибка авторизации! ‘; Не могу отправить комманду MAIL FROM: ‘; if (!server_parse($socket, «250», __LINE__)) < Не могу отправить комманду RCPT TO: ‘; if (!server_parse($socket, «354», __LINE__)) < Не могу отправить комманду DATA ‘; if (!server_parse($socket, «250», __LINE__)) < Не смог отправить тело письма. Письмо не было отправленно! ‘; function server_parse($socket, $response, $line = __LINE__) < Проблемы с отправкой почты! $response Проблемы с отправкой почты! Использовать код можно так-же как и обычную функцию mail: СПОСОБ 2 — просто копируем его на сайт и нечего не настраиваем smtp_username = $smtp_username; /** try < fputs($socket, «HELO » . $this->smtp_host . «\r\n»); fputs($socket, «AUTH LOGIN\r\n»); fputs($socket, base64_encode($this->smtp_username) . «\r\n»); fputs($socket, base64_encode($this->smtp_password) . «\r\n»); fputs($socket, «MAIL FROM: «.$this->smtp_username.»\r\n»); fputs($socket, «RCPT TO: » . $mailTo . «\r\n»); fputs($socket, «DATA\r\n»); fputs($socket, $contentMail.»\r\n.\r\n»); fputs($socket, «QUIT\r\n»); private function _parseServer($socket, $response) < Вызываем теперь класс с параметрами require_once «SendMailSmtpClass.php»; // подключаем класс $mailSMTP = new SendMailSmtpClass(‘zhenikipatov@yandex.ru’, ‘****’, ‘smtp.yandex.ru’, ‘Evgeniy’); // создаем экземпляр класса Материал взят частично с сайтов: imap парсинг темы письмаSimbiXНовичокПриветствую, есть задача получать письма с ящика пользователя по imap протоколу, возникла проблема с парсингом темы сообщения: когда текст закодирована в base64 с прямым указанием кодировки: то все нормально, imap_mime_header_decode работает отлично но есть письма в которых тема идет plain текстом, на которую imap_mime_header_decode возвращает default, и нужно как-то пробовать самому верно узнать кодировку. Смотрю заголовок с Content-type где тоже можно получить кодировку, но есть письма в которого его нет, что делать тогда, как узнать кодировку ? Получение почты средствами PHP через IMAPДоброго всем времени суток господа. Есть E-mail’ы, логины и пассы к своей почте. Охота средствами PHP с каждой почты получать E-mail’ы. Просто подключиться к почте по IMAP, затолкать все письма в простой PHP массив. Без всяких извратов, без удалений писем, просто подключаемся -> делаем массив с письмами. Что то в роде: И сам уже пытался, и гуголь мучал. Посте двух дней поисков, странно, но больше одного письма, из всего списка, получить не могу. Подскажете с кодом? 1 ответ 1Порядок действий примерно такой:
Приводить пример кода не буду, в оф. документации достаточно примеров для каждой из функций. Если не получиться, пишите, будем думать дальше вместе OpenRate.usСайт про CRM-маркетинг, рассылки и вот это всёКак работает FBL Яндекс ПочтыFeedback Loop (FBL) Яндекс Почты заработал еще в сентябре 2014 (руки не доходили написать). FBL использует функционал Return Path, предоставляется по запросу и доступен только отправителям, использующим выделенные IP. Заявки проходят ручную модерацию. Представитель Яндекса рассказал в сообщении в тематической группе Фейсбука: «Мы в Яндекс.Почте совместно с нашими партнёрами, компанией ReturnPath, запускаем публичный FBL для жалоб пользователей, с выбором источника по IP-адресу. Это сервис для больших рассыльщиков, владеющих собственными блоками IP-адресов. Также он уточнил, что «…никакого количественного ценза нет, то есть «много» — это сколько угодно, если с собственных айпишников. Хотим пока именно поработать на уровне ESP. В планах конечно есть развитие возможностей.» Не забудьте подключить postoffice Yandex, чтобы отслеживать доставку писем и поведение читателей с почтой на Яндексе. Как работает FBL Яндекс Почты : 6 комментариевОна по умолчанию отображается в письмах отправителей, которые поддержали формат такой отписки на своей стороне. В противном случае, Вы можете как и раньше нажимать кнопку Это Спам на нежелательных рассылках. пользуемся юнисендер, как настроить fbl в яндексе? требует ip серверов Анна, скорее всего никак. Но на всякий случай переспросите у поддержки Юнисендера. мы рассылаем через mailchimp Вы можете периодически извлекать из Почтового офиса Яндекса список пожаловавшихся на спам и исключать их вручную. Настройка FBL для ваших доменовЗачем это нужно?Настройка FBL для вашего домена необходима для автоматической отписки подписчиков, которые жмут кнопку СПАМ в ваших письмах. Если вы этого не делали, то по умолчанию будут использоваться настройки FBL сервиса JustClick и ваши подписчики будут отписываться от вашей рассылки без вашего участия. Как настроить?
Настройки FBL для Mail.ru
Создайте специальный e-mail вида fbl@ваш_сайт.ru, на который будут отправляться уведомления о нажатии кнопки СПАМ вашими подписчиками. Обратите внимание: на один домен может быть настроен только один адрес для получения FBL. Перейдите на страницу настройки FBL https://postmaster.mail.ru/settings и укажите там созданный вами ранее e-mail — fbl@ваш_сайт.ru. Настройки FBL для Google
Настройки FBL для ЯндексК сожалению, Яндекс прекратил поддержку FBL, а значит и предоставление информации о подписчиках, нажавших на «спам». Настроить FBL для данного сервиса не представляется возможным. Настройка почтового протокола IMAP на Mail.ruНастраивать IMAP для почты на сервисе Mail.ru не нужно. Он включен по умолчанию и изменить эти настройки нельзя. Адрес IMAP-сервера Mail.ru — imap.mail.ru — именно его нужно будет сообщить в поддержку. В случае с Mail.ru, логин для e-mail совпадает с самим e-mail. Настройка почтового протокола IMAP на Gmail.com
Адрес IMAP-сервера для почты от Google — imap.gmail.com — именно его нужно будет сообщить в поддержку. В случае с Gmail, логин для e-mail совпадает с самим e-mail. Настройка почтового протокола IMAP на Yandex.ru
Адрес IMAP-сервера для почты от Yandex — imap.yandex.ru — именно его нужно будет сообщить в поддержку. В случае с Yandex, логин для e-mail совпадает с самим e-mail. Что сообщить в поддержку?Для завершения настроек сообщите нам в поддержку support@justclick.ru следующие данные:
Отписка на php парсингом FBL письма с использованием imap функцийInitially released in December 2012, the PHP IMAP Mailbox is a powerful and open source library to connect to a mailbox by POP3, IMAP and NNTP using the PHP IMAP extension. This library allows you to fetch emails from your email server. Extend the functionality or create powerful web applications to handle your incoming emails.
Installation by Composer Install the latest available and stable source code from master , which is may not released / tagged yet: Install the latest available and may unstable source code from develop , which is may not properly tested yet: Before you can run the PHPUnit tests you may need to run composer install to install all (development) dependencies. You can run all PHPUnit tests by running the following command (inside of the installed php-imap directory): php vendor/bin/phpunit —testdox Integration with frameworks Getting Started Example Below, you’ll find an example code how you can use this library. For further information and other examples, you may take a look at the wiki. Method imap() allows to call any imap function in a context of the the instance: Some request require much time and resources: Работа с SMTP в Synapse.Приветствую всех читателей блога WebDelphi.ru! Очень надеюсь, что затянувшаяся вынужденная пауза в работе блога подходит к концу. И в скором времени те, кто ожидает продолжение постов про DevExpress и Google Календарь получат пищу для размышлений в виде статьи (черновой вариант уже недели две как пылится в блоге). Этот пост я решил снова посвятить библиотеке Synapse и снова рассмотреть несколько вопросов относительно работы с почтой. В качестве отправной точки для написания статьи я решил использовать тему с форума и один из последних комментариев в статье, посвященной использованию Synapse для работы с GMail. Про Synapse я рассказываю в блоге уже довольно давно (и, что интересно, в «пиаре» Synapse обвинен ещё не был). И хоть и стараюсь обычно рассказывать так, чтобы было не только интересно и с картинками, но и понятно, вопросы все равно появляются самые разные. На некоторые вопросы отвечаю сразу, где-то сам долго «туплю» прежде, чем смогу найти решение, а какие-то вопросы по Synapse коплю до тех пор, пока не наберется «критическая масса» для отдельного поста и свободная минутка как, например, для этого поста. Прежде всего, избегая вопросов и претензий типа «а у меня тут ошибка«, «а код не работает» и т.д. пишу жирными буквами и выделяю особо следующие моменты, которые следует учитывать при копипасте всего исходного кода, рассмотренного ниже:
Теперь, покончив с формальностями, перейдем к сути статьи. Сегодня на повестке дня снова работа с SMTP и рассматриваются следующие моменты работы: Кое-какие моменты из этих вопросов уже ранее рассматривались в блоге, поэтому — буду кидаться ссылками и частично расширять и актуализировать уже имеющийся материал. Для работы нам потребуются следующие модули Synapse: smtpsend, pop3send, blcksock, ssl_openssl, mimemess, mimepart, synautil, synachar. Отправка писем с вложениямиОтправка писем с использованием Synapse рассматривалась в следующих статьях: Начнем с отправки c самого простого. Открываем Delphi (желательно XE3, т.к. см. выше), создаем новый проект VCL Application и бросаем на форму компоненты, как показано на рисунке ниже: Вид главной формы приложения Теперь разберемся как происходит отправка писем с помощью Synapse. По большому счёту, отправку любого письма (хоть с вложением, хоть без) выполняется в пять шагов, которые можно представить в виде вот такой небольшой таблички:
|