Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Getting message body structure

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

in reply to Getting message body structure

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


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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://765323]
[Corion]: shmem: Indeed!

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (12)
As of 2017-08-21 13:00 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (323 votes). Check out past polls.