Лучший способ обрабатывать парсинг / декодирование электронной почты в PHP?

В настоящее время я использую mimeDecode.php библиотеки PEAR для анализа входящих писем. Кажется, что у вас много проблем и не удается декодировать много сообщений, поэтому я хотел бы заменить его чем-то лучше.

Я ищу что-то, что может правильно отделить части сообщения, например, от, от тела и т. Д. В идеале он сможет обрабатывать все распространенные методы кодирования, такие как base64, uuencode, цитируемые для печати и т. Д.

В ситуациях, когда одно текстовое и html-версии одного и того же сообщения содержатся в одном электронном письме, я бы идеально хотел, чтобы он знал разницу между ними, поэтому я мог выбрать, какую часть я хотел бы отобразить.

Я не беспокоюсь о привязках к этому моменту времени, но было бы хорошо, если бы у них были знания о них, если я захочу реализовать это в будущем.

Я видел, что у PHP есть группа функций, которые начинаются со слова imap, которые появляются, они могут делать то, что я хотел бы, но я не уверен, не опробовав их.

В настоящее время я делаю «на лету» декодирование сообщений на PHP, поэтому я ищу решение для замены PHP.

У кого-нибудь есть опыт с этим, который мог бы указать мне в правильном направлении? Мне бы очень хотелось начать использовать что-то, что в конечном итоге не будет делать то, что мне нужно.

Забавно, что вы должны спросить … Im фактически работает над простой системой уведомлений. Я только что закончил Bounce Manager, используя Zend_Mail для реализации. Он имеет почти все функции, которые вы ищете … вы можете подключиться к почтовому ящику (POP3, IMAP, Mbox и Maildir) и извлекать из него сообщения, а также работать со всеми этими сообщениями.

Он обрабатывает многостраничные сообщения, но с деталями может быть сложно работать. Мне было трудно понять, какая часть была прикрепленной оригинальной частью сообщения в NDR, с которой я работал, но у меня есть чувство, что я просто что-то пропустил в документации. Я не уверен, как он обрабатывает кодировку, потому что мое использование было довольно простым, но я уверен, что у него есть положения для всех упомянутых вами кодировок. Ознакомьтесь с документами и просмотрите API.

Недавно я разработал парсер PHP, и я его использовал для производства.
Я очень доволен этим, и некоторые разработчики разветвили его:

https://github.com/plancake/official-library-php-email-parser

Я знаю, что этот вопрос уже четыре года … но мне в итоге понадобилась библиотека для разбора писем и не была удовлетворена ни одним из доступных вариантов. Я хотел что-то надежное, совместимое с PSR-2, устанавливаемое через композитор.

 composer require zbateson/mail-mime-parser 

Он использует потоки, которые позволяют передавать ему SMTP-соединение (для разбора электронной почты и хранения в базе данных, например), или файл, или поток памяти … независимо от того, что вам нравится. Он также не хранит всю информацию в памяти – я еще не тестировал этот бит с достаточно большим набором данных, но в теории письма с очень большими вложениями не будут использовать всю память PHP.

https://github.com/zbateson/MailMimeParser

Ознакомьтесь с вики для руководства и API … и если вы найдете ошибки / опечатки или видите улучшения, пожалуйста, внесите свой вклад 🙂

Я искал 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, которая должна быть установлена.

Я в настоящее время также ищут простую в использовании, надежную библиотеку разбора электронной почты MIME и в настоящее время серьезно изучаю компонент Mail из eZ Components. Но, если вы ищете что-то, что сделает его таким же простым, как echo $email->text; или echo $email->html; , как и я, вы будете разочарованы. На самом деле, теперь я не думаю, что такое упрощение даже возможно, из-за того, как работает MIME. Но это действительно лучший вариант в мире PHP.

Я начал работать над моим текущим проектом с компонентом Zend_Mail, но когда пришло время действительно зарываться внутри этих частей электронной почты и закодированных заголовков, Zend_Mail в значительной степени оставляет вас на холоде. Вам нужно сделать большинство расшифровки самостоятельно, что совсем не забавно.

Что касается расширения IMAP PHP, оно предназначено для обработки сообщений из вашего почтового ящика, а не для MIME-декодирования. Хотя, у него действительно есть удобная функция декодирования, которая вам может понадобиться. С другой стороны, расширение Mailparse PECL касается именно этой проблемы. Я еще не пробовал, но, похоже, вам нужно написать много кода, чтобы действительно получить нужные данные.