Search code examples
perlimappop3email-client

How to receive a new email directly from email server in Perl


I have a an application sitting on a desktop and I want to run it directly through the trigger of an Email. Basically I want a script that would periodically fetch new mails from the server and trigger my script on receipt of a specific mail. How should I proceed, or in other words which libraries in Perl can help?

I have gone through POP and IMAP manuals…I just don't know a library in Perl that could help me listen to a server.


Solution

  • Net::POP3 is a good place to start... this is an example from their manpage...

    use Net::POP3;
    $pop = Net::POP3->new('pop3host');
    $pop = Net::POP3->new('pop3host', Timeout => 60);
    if ($pop->login($username, $password) > 0) {
        my $msgnums = $pop->list; # hashref of msgnum => size
        foreach my $msgnum (keys %$msgnums) {
            my $msg = $pop->get($msgnum);
            print @$msg;
            $pop->delete($msgnum);
        }
    }
    $pop->quit;