Я в свое время (2003 г.) писал свой парсер с использованием MIME::Parser
Крутил циклик по всем кускам письма. Но мне надо было поймать текстовую часть, поэтому искал только plain кусок.
Но запросто можно наткнуться на нестандартный метод помещения аттача.
В плане переводов строк - ИМХО уже давно все делают нормально (\x0a), либо просто перед парсингом делать s/\x0d$//
Будет надо - выложу скрипт, но не трогал его с 2003 года, поэтому в современных условиях может потребовать некоторой доработки )
PS. Для разных тем лучше создавать разные темы в форуме. Слишком длинные топики, включающие обсуждения разных вопросов, сложно читать/
"No! Try not! Do. Or do not. There is no try." -- Yoda