Parsing Email

Discussion in 'Perl Misc' started by Dan, Sep 27, 2004.

  1. Dan

    Dan Guest

    What is the best way to get the body of the following email message
    into a file? The following code gets the subject and from fields
    nicely, but I can't figure out how to get the body:

    my ($summary, $i);

    for (file_read "$f_email_html") {
    print "$i";
    if (/<b>From\:<\/b> <a href\=\'mailto\: \&quot(.+)\&quot/) {
    $i++;
    $summary .= "From: $1\;\n ";
    }
    elsif (/<b>Subject\:<\/b>(.+)<br>/) {
    $i++;
    $summary .= "Subject: $1\;\n ";
    }

    }

    file_write "$f_email_summary", $summary;


    Here is the .html file I am trying to parse:


    (01) <a name='10962432060' href='#top'>Back to Index</a> , <a
    href='#top'>Previous</a> , <br><b>Date:</b> Sun 09/26/04 19:00:06<br>
    <b>To:</b> &lt;&gt;<br>
    <b>From:</b> <a href='mailto: &quot;Dan Hoffard&quot;
    &lt;&gt;'>Dan Hoffard</a><br>
    <b>Reply to:</b> <a href='mailto:'></a><br>
    <b>Subject:</b> test<br>
    <blockquote><pre>This is a multi-part message in MIME format.

    ------=_NextPart_000_0039_01C4A3F7.606C81F0
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable

    test
    asdf1
    asdf2
    asdf3
    asdf4
    asdff
    Dan Hoffard


    ------=_NextPart_000_0039_01C4A3F7.606C81F0
    Content-Type: text/html;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    </pre>
    <html><p>
    <HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; =
    charset=3Diso-8859-1">
    <META content=3D"MSHTML 6.00.2800.1106" name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=3D#ffffff>
    <DIV><FONT face=3DArial size=3D2>test</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>Dan Hoffard<BR><A=20
    href=3D"mailto:"></A><BR>=
    </FONT></DIV></BODY></HTML>

    ------=_NextPart_000_0039_01C4A3F7.606C81F0--

    </blockquote><br><hr>
    Post a follow-up to this message
    Dan, Sep 27, 2004
    #1
    1. Advertising

  2. Dan () wrote:
    : What is the best way to get the body of the following email message
    : into a file?

    use MIME::parser
    Malcolm Dew-Jones, Sep 27, 2004
    #2
    1. Advertising

  3. Dan <> wrote:


    > for (file_read "$f_email_html") {
    > print "$i";



    for (file_read $f_email_html) {
    print $i;

    perldoc -q vars

    What's wrong with always quoting "$vars"?


    --
    Tad McClellan SGML consulting
    Perl programming
    Fort Worth, Texas
    Tad McClellan, Sep 28, 2004
    #3
  4. Dan

    Dan Guest

    I think MIME::parser may be overkill for what I am doing.. All I need
    to do is get the body of the message.. Isn't there an easy way to do
    it with file_read?

    Thanks,
    Dan

    (Malcolm Dew-Jones) wrote in message news:<>...
    > Dan () wrote:
    > : What is the best way to get the body of the following email message
    > : into a file?
    >
    > use MIME::parser
    Dan, Sep 28, 2004
    #4
  5. Dan

    Joe Smith Guest

    Dan wrote:

    > I think MIME::parser may be overkill for what I am doing.. All I need
    > to do is get the body of the message.. Isn't there an easy way to do
    > it with file_read?


    Maybe, if you're parsing a simple plain-text message.

    But if you're parsing a multi-part message with boundariess like
    "------=_NextPart_000_0039_01C4A3F7.606C81F0" you will need MIME::parser
    or the equivalent.
    -Joe
    Joe Smith, Sep 28, 2004
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. GIMME
    Replies:
    2
    Views:
    869
    GIMME
    Feb 11, 2004
  2. Naren
    Replies:
    0
    Views:
    571
    Naren
    May 11, 2004
  3. Christopher Diggins
    Replies:
    0
    Views:
    600
    Christopher Diggins
    Jul 9, 2007
  4. Christopher Diggins
    Replies:
    0
    Views:
    424
    Christopher Diggins
    Jul 9, 2007
  5. John Levine
    Replies:
    0
    Views:
    718
    John Levine
    Feb 2, 2012
Loading...

Share This Page