Содержание
парсинг почты письма в виде файлов text unix box | PHPClub
JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.
-
Автор темы
texrdcom -
Дата начала
texrdcom
Новичок
#1
парсинг почты письма в виде файлов text unix box
столкнулся с проблемой
стараюсь написать парсер который разбирает почтовые сообщения
сохраненные в видет txt файлов unix box
подскажите в сторону чего смотреть
-~{}~ 19. 08.06 14:17:
ps
админы по не осторожности добавил в текущий форум
перенесите плиз.
Фанат
oncle terrible
#2
в сторону формата txt файлов unix box
voituk
прозревший
#3
Можешь воспользоваться пакетом PEAR::Mail
Войдите или зарегистрируйтесь для ответа.
Поделиться:
Facebook
Twitter
WhatsApp
Ссылка
основы работы. Часть 2 OTUS
Продолжаем разговор про парсинг. Начало здесь.
Алгоритм функционирования
При первом запуске parser необходимо знать не только о структуре утилиты, но и о том, как она работает. Здесь может потребоваться программирование, особенно если ПО пишется конкретным разработчиком под нужны предприятия.
Алгоритм работы представлен так:
- Клиент прописывает вводные данные для парсинга на сайте.
- Указывается список страничек и ресурсов, которые должны быть изучены системой.
- Запускается работа утилиты.
- Программа автоматически осуществляет глубокий анализ обнаруженных данных.
- Происходит систематизация полученных электронных сведений.
- Пользователь получает ответ в выбранном заранее формате. Обычно он отмечается после инициализации утилиты – на этапе выставления параметров и настроек.
Это – описание того, как парсить, в общих чертах. Две разные программы будут действовать по собственным алгоритмам. Но итоговый результат окажется в рамках описанных выше манипуляций.
Как пользоваться
Парсер на PHP, JavaScript или любом другом языке программирования необходимо грамотно использовать. На первых порах сложные задачи решать не рекомендуется. Сначала стоит задействовать рассматриваемый файл для анализа конкурентов и подбора информации для собственных проектов. Далее – применять для актуализации электронных сведений и аудита сайтов.
Весь процесс будет базироваться на вводимых параметрах для поиска и извлечения контента. Многое зависит от того, для чего именно применяется инструмент. От этого предстоит отталкиваться при вникании в тонкости определения вводных. Параметры, находясь в parser, придется подгонять под каждую задачу индивидуально.
Примеры парсинга
Для того, чтобы лучше понимать web parsing, стоит рассмотреть несколько наглядных примеров. Они помогут разобраться в настройках и тонкостях для самых распространенных ситуаций на практике.
Интернет магазин
Первый вариант – это работа с интернет магазином. Ответы на вопросы о том, для чего применять парсинг в рассматриваемой области, просты:
- актуализация информации о цене или иной товарной единицы;
- парсинг каталога товаров у поставщиков и конкурентов.
Первый случай помогает решить Marketparser. Там прописывается код продукта и позволение автоизучения данных. Основная масса процессов протекает без стороннего вмешательство. Для увеличения эффективности рекомендуется ограничить область поиска цен исключительно страничками продукции.
Во втором случае нужно отыскать код товара и прописать его в приложении. Для этого используется Catalogloader. Он создан для автоматического сбора информации о товарах в онлайн магазинчиках.
Другие части сайта
Ответы на вопрос о том, для чего использовать parsers в других частях сайта, прост – это помогает анализировать электронные материалы. Процесс мало чем отличается от ранее рассмотренного примера.
Пользователю потребуется открыть утилиту сбора сведений, ввести туда коды желаемых компонентов, поставить желаемые настройки и осуществить запуск.
Ключевая разница – в первичной параметризации. При вводе параметров для поиска прописывается рендеринг через JS. Это требуется для анализа статей и комментариев. Речь идет о компонентах, которые появляются на экране при прокрутке страницы. Подобные версии утилит стараются имитировать соответствующую деятельность при активации параметров.
Можно через рассматриваемый тип утилит собирать информацию о структуре веб-странички. Достигается результат при помощи breadcrumbs. Функция отвечает за указание структуры конкурентных ресурсов. Отличный помощник новичкам.
Лучшие парсеры
XML парсер – это отличный помощник при аналитике информации со страниц. Писать собственное приложение для этих целей можно и нужно, если есть соответствующие навыки программирования. Далее будут приведены примеры подобных утилит. Но сначала стоит рассмотреть лучшие готовые утилиты для анализа адресов, а также email и других электронных материалов.
Облачные сервисы
Это – веб-страницы и программы, в которых пользователю предстоит указывать инструкции поиска определенных сведений. Далее происходит передача на серверы компаний по парсингу. После – отображение найденной информации.
Лучшие здесь – это:
- Import.io. Инструмент, который выступает одним из самых востребованных. Дает возможность парсить бесконечное систра страничек. Поддерживает самые популярные форматы вывода электронных материалов. Создает комфортную для юзера структуру восприятия.
- Mozenda. Страничка сбора информации с ресурсов. Заслужила признание крупных компаний типа «Теслы». Первые 30 дней – бесплатное пользование.
- Octoparse. Простой сервис. Не требует навыков программирования для осваивания. Информация может быть получена за несколько кликов.
- ParseHub. Бесплатный и функциональный. Найти на домене ru его проблематично. Но с «российскими» страничками он работает отлично.
Это – то, что применяется на практике чаще остального аналогичного контента.
Компьютерные утилиты
Здесь можно не только изучать email и страницы типа com и ru, но и получать иные полезные материалы для анализа. Для получения к ним доступа требуется установить специальное ПО на устройство:
- Screaming Frog. Мощный и функциональный инструмент для SEO-работников.
- Datacol. Универсальный софт. Помогает изучать странички конкурентов в 99% случаев на все 100. Прост в освоении.
- ParserOK. Имеет настройки сбора информации о стоимости продукции, автокомпиляцию каталогов с товарами, email, адресов типа ru и не только.
- Netspeak Spider. Предназначен для SEO-аудита. Готовое решение, которое в руках мастера превратится в мощный инструмент. Есть бесплатная и платная версии. Первая несколько уступает по возможностям.
Пример парсера на PHP и «ИкЭмЭль» будет дан позже. Сначала стоит рассмотреть еще одну крупную категорию ПО. А именно – браузерные расширения.
Виджеты для браузеров
Самый удобный вариант, но он выделяется относительно небольшим функционалом. Расширения помогают запустить анализ электронных материалов прямо из браузера, находясь на желаемом ресурсе. Вводить некоторые параметры вручную не придется:
- Parsers. Плагин, который извлекает HTML-информацию с веб-страничек и импортирует их в XML или JSON.
- Scraper. Работает автоматически. Имеет ограничение по количеству собранных сведений.
- Data Scraper. Расширение, функционирующее автоматически. Производит экспорт в Excel. До 500 страничек можно сканировать бесплатно. Остальные требуют ежемесячной доплаты.
Почта и другие сведения при помощи перечисленных расширений могут быть получены достаточно быстро. Но для эффективного анализа лучше использовать программы или облачные сервисы.
Примеры кодов
Парсить в XML можно через утилиты, которые написаны пользователем самостоятельно. Данный процесс требует определенных навыков, умений и знаний в области разработки. Иногда достаточно только программирования. Это касается ситуаций, когда программеру приносят готовую структуру приложения и грамотно составленное техническое задание.
На PHP – номер один
Для того, чтобы получить желаемое программное обеспечение на PHP, почта и иные сведения не потребуются. Зато программеру предстоит хорошо выучить скриптинг и соответствующий язык программирования.
Весь процесс состоит из нескольких частей:
- Получение кода HML от странички.
- Разбор кодификации с сохранением информации.
- Дальнейшая обработка сведений.
Для первой ситуации требуется написать простой класс с одним статическим методом. Это – обертка над CURL. Соответствующая кодификация может быть использована позже, после прохождения той или иной модификации.
Здесь – пример рассмотренного инструментария на PHP. В официальной документации языка программирования можно отыскать больше функций и возможностей для ПО.
На XML – номер два
Парсинг на XML – распространенный подход к получению желаемой информации и сбора сведений с ресурсов конкурентов. Подобные утилиты сейчас имеют почти все интернет-обозреватели. Но можно написать собственную программу.
Вот – пример, который составлен на PHP 5. Это – полноценная замена SimpleXML. Здесь доступ к компонентам осуществляется при помощи свойств класса. К атрибутам элемента – подобно массиву. Присутствует итерация по составляющий посредством foreach.
Как быстрее научиться коддить
Для того, чтобы лучше понимать анализ страниц конкурентов, а также научиться писать собственные парсеры, стоит закончить специализированные дистанционные компьютерные курсы. Они предусматривают:
- программу обучения, рассчитанную на срок до 12 месяцев;
- постоянное кураторство;
- бесценный практический опыт;
- новые знакомства;
- разный уровень навыков для начала обучения – от новичков до продвинутых разрабов.
В самом конце пользователи получат сертификаты в электронном виде. Они подтвердят навыки, знания и умения в выбранной сфере. А еще клиенты смогут собрать первое портфолио. Иногда – в процессе обучения найти перспективное место работы.
Дистанционные компьютерные онлайн курсы – лучшее решение для тех, кто решил изучить парсинг и программирование.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Также вам может быть интересен следующий курс:
Лучший способ обработки/декодирования электронной почты в PHP?
Задавать вопрос
спросил
Изменено
4 года, 6 месяцев назад
Просмотрено
39 тысяч раз
В настоящее время я использую mimeDecode. php библиотеки PEAR для разбора входящих писем. Кажется, у него много проблем, и он не может декодировать много сообщений, поэтому я хотел бы заменить его на что-то получше.
Я ищу что-то, что может правильно разделить части сообщения, такие как «кому», «от», «тело» и т. д. В идеале это могло бы обрабатывать все распространенные методы кодирования, такие как base64, uuencode, кавычки для печати и т. д.
В ситуациях, когда в одном и том же сообщении содержится как обычный текст, так и html-версия одного и того же сообщения, в идеале мне бы хотелось, чтобы он знал разницу между ними, чтобы я мог выбирать, какую часть отображать.
На данный момент я не беспокоюсь о вложениях, но было бы неплохо, если бы я знал о них в случае, если я захочу реализовать это в будущем.
Я видел, что в PHP есть группа функций, которые начинаются со слова imap, и они могут делать то, что мне нужно, но я не уверен, не попробовав их.
В настоящее время я занимаюсь декодированием сообщений на лету в PHP, поэтому я ищу решение для замены PHP.
Есть ли у кого-нибудь опыт работы с этим, который мог бы указать мне правильное направление? Я бы не хотел начинать использовать что-то, что в конечном итоге не будет делать то, что мне нужно в долгосрочной перспективе.
- php
- электронная почта
- mime
- декодирование
Недавно я разработал парсер почты PHP и использую его в производстве.
Я очень доволен этим, и некоторые разработчики разветвили его:
https://github.com/plancake/official-library-php-email-parser
4
Я знаю, что этому вопросу уже четыре года… но мне понадобилась библиотека для синтаксического анализа почты, и ни один из доступных вариантов меня не удовлетворил. Я хотел что-то надежное, совместимое с PSR-2, устанавливаемое через композитор.
композитор требует zbateson/mail-mime-parser
Это собственный синтаксический анализатор, созданный с нуля, чтобы обойти известные проблемы и ошибки в других реализациях. Он тщательно протестирован и довольно широко используется.
Библиотека использует потоки Psr7, которые позволяют вам передавать любой поток, который вам нравится. Он также не хранит всю информацию в памяти — очень большие вложения могут быть возвращены в виде потока вместо строки, если это необходимо, поэтому память не используется. Точно так же все сообщение никогда не хранится непосредственно в памяти, в памяти хранятся только ссылки на потоки и заголовки.
https://github.com/zbateson/mail-mime-parser
Посетите веб-сайт для получения руководства и API… и если вы обнаружите ошибки/опечатки или увидите улучшения, пожалуйста, не стесняйтесь открывать проблему , или копайте прямо сейчас и внесите свой вклад с запросом на включение 🙂
3
Забавно, что вы спросили… Сейчас я работаю над простой системой уведомлений. Я только что закончил Bounce Manager, используя Zend_Mail для реализации. В нем есть почти все функции, которые вы ищете. .. вы можете подключиться к почтовому ящику (POP3, IMAP, Mbox и Maildir) и получать из него сообщения, а также работать со всеми этими сообщениями.
Он обрабатывает сообщения, состоящие из нескольких частей, но работать с частями может быть сложно. Мне было трудно понять, какая часть была прикрепленной частью исходного сообщения в отчете о недоставке, с которым я работал, но у меня такое чувство, что я просто что-то пропустил в документации. Я не уверен, как он обрабатывает кодировку, потому что мое использование было довольно простым, но я почти уверен, что в нем есть положения для всех упомянутых вами кодировок. Ознакомьтесь с документами и просмотрите API.
11
Я создал форк php-mime-mail-parser, чтобы исправить все проблемы: Форк php-mime-mail-parser
Более 52 тестов и 764 утверждения
Покрытие кода: 100 % строк, 100 % функций и методов, 100 % классов и признаков
Для его использования вам понадобится пакет PECL MailParse, но оболочка работает без проблем и полностью протестирована.
Для полноты картины я попробую. http://code.google.com/p/php-mime-mail-parser/ — это оболочка для PHP MailParse, которую необходимо установить.
1
В настоящее время я также ищу простую в использовании, надежную библиотеку разбора электронной почты MIME и в настоящее время серьезно изучаю компонент Mail от eZ Components. Но если вы ищете что-то, что сделает это так же просто, как echo $email->text;
или echo $email->html;
, как и я, вы будете разочарованы. На самом деле, теперь я не думаю, что такое упрощение возможно из-за того, как работает MIME. Но это кажется лучшим вариантом в мире PHP.
Я начал работать над своим текущим проектом с компонентом Zend_Mail, но когда пришло время покопаться в этих частях электронной почты и закодированных заголовках, Zend_Mail практически оставил вас в дураках. Большую часть декодирования вам придется делать самостоятельно, что совсем не весело.
Что касается PHP-расширения IMAP, то оно предназначено для извлечения сообщений из вашего почтового ящика, а не для их декодирования MIME. Хотя у него есть удобная функция декодирования, которая может вам понадобиться. С другой стороны, расширение PECL для Mailparse имеет дело именно с этим набором проблем. Я еще не пробовал, но кажется, что вам нужно написать много кода, чтобы действительно получить нужные данные.
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Парсить электронную почту, отправленную на адрес с PHP?
спросил
Изменено
3 года назад
Просмотрено
4к раз
В течение многих лет в качестве побочного проекта я хотел создать небольшую симпатичную PHP-библиотеку, которая позволяет электронным письмам, отправленным на предопределенный адрес электронной почты, затем анализироваться с помощью PHP и сохраняться в базе данных MySQL.
Многие заявки в службу поддержки и службы поддержки имеют эту функцию. Вы можете отправить электронное письмо на адрес, и на основе адреса электронной почты и содержания оно создаст запрос в службу поддержки для пользователя. Также ответные электронные письма будут добавлять ответы на билеты в систему из отправленных электронных писем.
Вся эта концепция всегда очаровывала меня, и в свое время я провел достаточно исследований, чтобы полностью знать, как это сделать. Однако прошли годы, и я больше не уверен, что это лучший способ добиться этого, и я ищу информацию о том, как это сделать сейчас.
Я хотел бы создать какой-то плагин SugarCRM, который использует эту возможность, чтобы иметь возможность назначать электронные письма от моих клиентов для записей учетной записи и контакта в моей CRM.
Мой первоначальный поиск сегодня вечером нашел этот проект PHP Mime Mail Parser здесь https://code.google.com/p/php-mime-mail-parser/
В нем говорится: «Вам нужно будет сначала загрузить электронное письмо в файл, а затем передать его в MimeMailParser». Так что может быть полезно найти программу или метод, который также делает это… сохраняет электронные письма в файл, к которому я могу получить доступ с помощью PHP, а затем удаляю их. Я просто не уверен, что это лучший и стандартный способ сделать это?
Также эта библиотека, которая выглядит так же, но на Github и над которой недавно работала (последняя до даты публикации этого вопроса, то есть) https://github.com/eXorus/php-mime-mail-parser
1) Есть ли на сервере специальное программное обеспечение электронной почты для упрощения этого процесса?
2) Как этого добиться? Я не ищу, как читать электронную почту и анализировать идентификатор и другие данные в содержимом электронной почты… Мне просто нужна помощь с передачей содержимого электронной почты в мой PHP-скрипт!
Конечно, если бы существовала какая-то библиотека с открытым исходным кодом, которую я мог бы изучить или, может быть, даже использовать, выполняющую эту функцию, это тоже было бы замечательно, но я еще не знаю об этом.
С нетерпением ждем информации по этому вопросу, пожалуйста?
Это вопрос, аналогичный тому, как анализировать электронные письма в режиме реального времени по мере их получения, однако ответ на этот вопрос объясняет, как передавать/пересылать электронные письма в PHP-скрипт, только если вы используете CPanel, а я нет! Это нужное мне действие, только без помощи CPanel.
- php
- электронная почта
- разбор
8
Большинство MTA могут направлять входящую почту в сценарий. Затем сценарий, подобный тому, на который вы ссылаетесь в разделе Как анализировать электронные письма в режиме реального времени по мере их получения, может обрабатывать входящие сообщения по мере их поступления.
Что касается MTA, qmail (http://cr.yp.to/qmail.html) является одним из самых простых в настройке и управлении MTA. Если вы решите использовать qmail, я бы порекомендовал сайт lifewithqmail. org для отличного руководства по его установке и настройке. После того, как вы установили и запустили qmail, сделайте следующее, чтобы настроить пересылку входящих сообщений в ваш PHP-скрипт:0003
Добавьте строку в /var/qmail/control/rcphosts, чтобы указать qmail, что он должен действовать как MX для вашего домена.
В /var/qmail/control/virtualdomains добавьте строку, подобную этой, чтобы указать qmail, на какую учетную запись пользователя перенаправлять почту для этого домена: domain.tld:username
создать файл .qmail-default в пользовательском каталоге, содержащий канал к сценарию, на который вы хотите направить почту: | /path/to/script
перезапустить qmail.
Вам необходимо предоставить разрешения на выполнение для всех скриптов.
На этом этапе каждое входящее сообщение должно быть передано скрипту PHP с помощью qmail.
4
Я использую Parseur.com для получения входящих сообщений электронной почты, их анализа и публикации информации и содержимого сообщений по URL-адресу через http (json).