Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Getting message body structure

by skx (Parson)
on May 20, 2009 at 19:55 UTC ( [id://765323]=note: print w/replies, xml ) Need Help??


in reply to Getting message body structure

Email::Simple seems like it will do the job ..?

Steve
--

Replies are listed 'Best First'.
Re^2: Getting message body structure
by saurabh.hirani (Beadle) on May 21, 2009 at 12:11 UTC
    Thanks for your feedback. I had considered using Email::Simple. That would solve checking against header entities like from, to, subject, etc. But I also wanted to check if the message contains any of the restricted attachments defined in the configuration. So in my quest for the determining structure of email message cheaply, I also looked at the following:
    1. Email::MIME (thinking it to be lighter than MIME::Parser)
    2. MIME::Structure (the name suggests the ideal solution)

    But both of these modules do not drill down into message/rfc822 headers i.e. if I write an email with a covering note and an image attachment, these modules will show that my email contains - text/plain and image/gif, which is what I want.

    But if I forward this mail to someone with a covering note then they should show - text/plain, message/rfc822 and its children - text/plain and image/gif from the original msg. But they show - text/plain and message/rfc822 - they don't drill down into message/rfc822.

    And yes, I did call the sub parsing the message recursively for message/rfc822. But then I dumped the object hash of these modules and saw that they stop drilling once they hit the message/rfc822 header. I don't know if it is a design decision but it doesn't help me.

    So I am going to do the following - for checking against headers use Email::Simple which benchmarks (using Benchmark module) to be much faster than the same check using MIME::Parser. And for checking attachment names and their mime types, I have no choice but to resort to MIME::Parser.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://765323]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (9)
As of 2024-04-18 15:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found