Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Extracting a list of email addresses from a mail header

by nate (Monk)
on May 15, 2000 at 21:52 UTC ( [id://11701]=note: print w/replies, xml ) Need Help??

in reply to Extracting a list of email addresses from a mail header

Thanks for the pointers -- I finally got it, but it's a little messy:
use Mail::Internet; use Mail::Address; my @mail; while(<>) { push @mail, $_; } #read mail from STDIN and put it in @MAIL my $EMAIL = new Mail::Internet([@mail]); my $header = $EMAIL->head(); my @hlines; push @hlines, $header->get('To'); push @hlines, $header->get('Cc'); push @hlines, $header->get('Bcc'); #thanks [ZZamboni]... my @addr; foreach (@hlines) { my $line = $_; $line =~ s/^\w+\:(.*)$/$1/gs; #this is necessary to cut off the initial "To:" from the #header line -- I'm not sure why Address::Parse doesn't #do this push (@addr, Mail::Address->parse($line)); } #we now have a list of address objects -- convert to text addresses foreach (@addr) { $_ = $_->address } #our addresses are now in @addr
if anyone has any suggestions to tidy this up, please post. Esp. clipping the "To:", "cc:", and "bcc:" seems like it shouldn't need to be there -- but this worked on my test emails.

Replies are listed 'Best First'.
RE: Re: Extracting a list of email addresses from a mail header
by ZZamboni (Curate) on May 15, 2000 at 22:09 UTC
    I think you are bypassing the documented interface of Mail::Header by accessing its internal data like that (mail_hdr_hash). The following gives you the headers with the keyword removed:
    push @hlines, $header->get('To'); push @hlines, $header->get('Cc'); push @hlines, $header->get('Bcc');
    According to the Mail::Header documentation, get() in array context returns "a list of all the text from all the instances of TAG". Which should be what you are looking for.


Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2024-05-20 18:26 GMT
Find Nodes?
    Voting Booth?

    No recent polls found