В настоящее время я использую mimeDecode.php библиотеки PEAR для анализа входящих писем. Кажется, что у вас много проблем и не удается декодировать много сообщений, поэтому я хотел бы заменить его чем-то лучше.Лучший способ обработки/декодирования электронной почты в PHP?
Я ищу что-то, что может правильно отделить части сообщения, например, от, от тела и т. Д. В идеале он сможет обрабатывать все распространенные методы кодирования, такие как base64, uuencode, цитируемый для печати , и т. д.
В ситуациях, когда как одно текстовое, так и html-версии одного и того же сообщения содержатся в одном электронном письме, я бы идеально хотел, чтобы он знал разницу между ними, поэтому я мог выбрать, какую часть я хотел бы отобразить.
Я не беспокоюсь о вложениях в этот момент времени, но было бы хорошо, если бы у него были знания о них, если я хочу реализовать это в будущем.
Я видел, что у PHP есть группа функций, начинающихся со слова imap, которые появляются, они могут делать то, что я хотел бы, но я не уверен, не пробовав их.
В настоящее время я делаю «на лету» декодирование сообщений на PHP, поэтому я ищу решение для замены PHP.
У кого-нибудь есть опыт с этим, который мог бы указать мне в правильном направлении? Мне бы очень хотелось начать использовать что-то, что в конечном итоге не будет делать то, что мне нужно.
Вы знаете, если можно использовать Zend_Mail без разъема для хранения? Я хотел бы передать ему входящее сообщение в виде строки и иметь возможность использовать методы, связанные с сообщениями на нем, без необходимости приходить из хранилища. – Sgraffite
Да Я уверен, что есть способ, потому что этот же класс используется для отправки сообщений с классами почтовой/транспортной сети, и в этом случае вы всегда будете строить строки сообщений/файлы. Если я напомню, что он выглядит как '$ m = new Zend_Mail_Message (array ('raw' => $ stringMessage));' Посмотрите на фактический класс и комментарии к документу для проверки конструктора. – prodigitalson
Это закончилось для меня. Зенд сделал несколько вещей, которые я почему-то не понял. Zend генерирует исключение, если оно не распознает заголовок. В моем случае, я не забочусь о непризнанных заголовках, поэтому я закончил тем, что комментировал это исключение. Также есть функция, где Zend делает foreach() на $ parts, но иногда переменная, которую она пытается выполнить foreach on, имеет значение null, поэтому я добавил нулевую проверку и возвратил $ res, если она там null. – Sgraffite