打印本文 打印本文  关闭窗口 关闭窗口  
用Perl编写读取POP3邮箱的应用程序
作者:佚名  文章来源:不详  点击数1912  更新时间:2007-5-18 3:06:45  文章录入:啊祖  责任编辑:啊祖

>  本文将讨论开发人员利用Perl特定的能力编写POP3电子邮件应用程序。

  像微软的Outlook和Mozilla的雷鸟(Thunderbird)这样的电子邮件客户端程序能够让收发电子邮件变得极其简单——绝大多数时候,你需要做的只不过是点击一下工具条上的按钮,软件会为你完成与电子邮件服务器进行通信、验证密码、收取电子邮件等复杂的工作。

  但是在这种具有欺骗性的简单表象背后却牵涉大量的软件编程工作。而且,如果你是一个软件开发人员,你可能有一天会发现如果能够把这样的程序放到自己的应用程序会有多好啊。

  不用担心那么多,因为如果你在使用Perl,那么你就可以利用一个叫做Net::POP3的小CPAN模块来实现这一愿望,这个十分有用的模块会为你完成大多数复杂的工作。这个模块向POP3服务器的交互操作公开一个简单但是非常强大的API,提供一些预设的方法来进行服务器身份验证、消息列表和收取、消息删除,以及结束会话——简而言之,它提供了满足用户基本需要的一切。

  注:列表A到C里的代码文本可以从可下载的Zip文件里获得。

  本文将通过使用Net::POP开发一个简单的POP3电子邮件应用程序来探讨它的一些功能。一开始你需要在Perl提示符下运行下面的命令来下载和安装这个模块(如果你还没有的话):

  perl> perl -MCPAN -e "install Net::POP3"

  开始创建下面的Perl脚本(列表A):

  列表A

#!/bin/perl
# import package
use Net::POP3;
# ask user for critical variables
print "Mail host: ";
$host = <STDIN>;
chomp($host);
print " ";
print "Mailbox username: ";
$user = <STDIN>;
chomp($user);
print " ";
print "Mailbox password: ";
$pass = <STDIN>;
chomp($pass);
# initiate connection
# default timeout = 120 sec
$conn = Net::POP3->new($host) or die("ERROR: Unable to connect. ");
# login
$numMsg = $conn->login($user, $pass) or die("ERROR: Unable to login. ");
# display number of messages
if ($numMsg > 0) {
  print "Mailbox has $numMsg message(s). ";
} else {
  print "Mailbox is empty. ";
}
# close connection
$conn->quit();

  这个代码段会要求用户输入三个内容:电子邮件服务器的主机名、POP3用户名和相应的密码。一旦输入了这三项内容,一个新的Net::POP3对象就会被创建,而对象的login()方法会被用来打开一个到主机的连接,并验证所提供的凭据。如果提供的凭据被服务器认可,那么login()方法就会返回邮箱里的消息数量(或者返回0,如果没有消息的话)。

打印本文 打印本文  关闭窗口 关闭窗口