<?xml version="1.0" encoding="windows-1252"?>
<node id="196853" title="Getting Net::POP3 to grab mail then forward it on." created="2002-09-10 22:38:52" updated="2005-07-31 07:49:48">
<type id="115">
perlquestion</type>
<author id="961">
Anonymous Monk</author>
<data>
<field name="doctext">
I have a script using Net::POP3 to pop mail off a pop3 server. I'd like to forward the mail to another e-mail account without having to use postfix, or even write it to a file. I haven't been able to get it done.

Here's what I have so far:

&lt;code&gt;
#!/usr/local/bin/perl
#
# using pop3get -c will leave the mail on the server.
#

use Net::POP3;
use Getopt::Long;
use strict 'vars';
use vars qw($opt_c);

GetOptions("c!");

my $ServerName = "my.pop3server.com";
my $pop3 = Net::POP3-&gt;new($ServerName, Debug =&gt; 0);
my $UserName = "user";
my $Password = "pass";
my $inbox = "/export/homes/user/Mail/inbox";
my $msg_id;

die "Couldn't log on to server" unless $pop3;
my $Num_Messages = $pop3-&gt;login($UserName, $Password);
my $Messages = $pop3-&gt;list();

open FH, "&gt;&gt; $inbox" or die "Couldn't open inbox: ($!)\n";

for $msg_id (keys(%$Messages)) {
    print "Retriving Msg: $msg_id\n";
    my $MsgContent = $pop3-&gt;get($msg_id);
    # Here's where I'd like to forward it on..
    for (@$MsgContent) {
        print FH $_;   
    }
    my $delete_msg = $pop3-&gt;delete($msg_id) unless ($opt_c);
}

close FH;
$pop3-&gt;quit();
&lt;/code&gt;

</field>
<field name="reputation">
11</field>
</data>
</node>
