#! /usr/bin/perl use strict; use warnings; use CGI qw(:standard); use Data::Dumper; use CGI::Carp qw(fatalsToBrowser); use lib qw(.); use Mail::IMAPClient; use Mail::Address; print "Content-type: text/plain\n\n";#header(type => 'text/plain'); # general settings for connection my $user = 'user'; my $server = 'imap.gmx.net'; my $password = 'password'; my $folder = 'INBOX'; my $target = '/path/to/target.file'; my $imap = Mail::IMAPClient->new(Server => $server, User => $user, Password => $password) or die $@; my $mail_addresses = get_addresses($imap,$folder); #print_to_file($target,$mail_addresses); print $_,"\n" for(@$mail_addresses); #------------------------------------------------------------------------------# # Subroutines # #------------------------------------------------------------------------------# ## # parse e-mail-addresses from mail-headers ## sub get_addresses{ my ($imap,$folder) = @_; my @mail_addresses; $imap->select($folder); for my $folder($imap->messages()){ my $hashref = $imap->parse_headers($folder,"From"); my @from_addresses = Mail::Address->parse($hashref->{From}->[0]); my $address = $from_addresses[0]->address(); push(@mail_addresses,$address); } return \@mail_addresses; }# end get_addresses ## # print the mail-addresses into a txt-file ## sub print_to_file{ my ($target,$addresses) = @_; open(my $fh,">>$target") or die $!; for my $a(@$addresses){ print $fh $a,"\n"; } close $fh; }