现在已经没有多少人在命令行之下收发邮件了, 但是对于系统管理员来说, 命令行却又是极其方便, 例如我们公司目前使用的短信报警系统就是用perl来发送邮件给手机邮箱, 现在简单介绍一下邮件的收发.
1. 发邮件
大部分的服务商提供的SMTP服务, 都是要认证的, 这个时候需要一个叫Net::SMTP_auth的模块. 简单的程序如下, 注意最后的一个'点'哦..
#!/usr/bin/perl
use Net::SMTP_auth ;
my $smtp = Net::SMTP_auth -> new ( ' smtp.ex.com ' , Helo => ' ex.com ' , Debug => 1 ) ;
my $status = $smtp -> auth ( ' LOGIN ' , ' user ' , ' pass ' ) ;
$smtp -> mail ( ' 发件人地址 ' ) ;
$smtp -> to ( ' 收件人地址 ' ) ;
$smtp -> data () ;
$smtp -> datasend ( " 邮件内容 " ) ;
$smtp -> datasend ( " . " )
$smtp -> dataend () ;
use Net::SMTP_auth ;
my $smtp = Net::SMTP_auth -> new ( ' smtp.ex.com ' , Helo => ' ex.com ' , Debug => 1 ) ;
my $status = $smtp -> auth ( ' LOGIN ' , ' user ' , ' pass ' ) ;
$smtp -> mail ( ' 发件人地址 ' ) ;
$smtp -> to ( ' 收件人地址 ' ) ;
$smtp -> data () ;
$smtp -> datasend ( " 邮件内容 " ) ;
$smtp -> datasend ( " . " )
$smtp -> dataend () ;
2. 收邮件
收邮件也很简单, 需要个叫Net::POP3的模块, 简单程序如下
#!/usr/bin/perl
use Net::POP3 ;
my $pop = Net::POP3 -> new ( ' pop.ex.com ' , Timeout => 120 ) ;
if ( $pop -> login ( ' user ' , ' pass ' ) > 0 ) {
my $msgnums = $pop -> list ;
foreach my $msgnum ( keys % $msgnums ) {
my $msg = $pop -> get ( $msgnum ) ;
##$msg返回的是一个引用....
#......处理你的信件...
$pop -> delete ( $msgnum ) ; #删除它
}
}
use Net::POP3 ;
my $pop = Net::POP3 -> new ( ' pop.ex.com ' , Timeout => 120 ) ;
if ( $pop -> login ( ' user ' , ' pass ' ) > 0 ) {
my $msgnums = $pop -> list ;
foreach my $msgnum ( keys % $msgnums ) {
my $msg = $pop -> get ( $msgnum ) ;
##$msg返回的是一个引用....
#......处理你的信件...
$pop -> delete ( $msgnum ) ; #删除它
}
}