Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

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]
[james28909]: and i need to format those special instances into an absolute date instead of "yesterday"
[stevieb]: ask a question on SoPW, and include at least a half-dozen examples of the input, and at least one example of expected output
[davido]: Exactly: SoPW. This isn't going to be solved easily in the CB.
[james28909]: in need "yesterday" and so on, to be absolute like "1" or "31"
[stevieb]: ...and throw some of your existing code into the equation as well, just so readers know you've given a try at it ;)
[james28909]: ok
[stevieb]: davido thanks for the link ;) I was being the typical lazy
[davido]: date parsing is hard. The more examples you can provide of the input (within reason) and expected output, the better.
[stevieb]: agreed. That's why I said at least a half-dozen. If enough of the different formats are present, the date/time folk may not have to request more. If they do, then at least there was a decent base to start with
[stevieb]: I do date and time transformations in both Perl and Python, but not frequently enough to not have to search for the format params etc ;)

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2017-04-29 02:38 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (531 votes). Check out past polls.