在Perl中建立自己的自动响应系统

ZDNet软件频道 时间:2003-05-22 作者:BUILDER.COM |  我要评论()
本文关键词:
Perl是一种出色的文本处理语言,同时也是能够建立通过e-mail来读取和响应命令的自动响应系统的理想工具。
本文译自Builder.com,未经许可请勿转载Perl是一种出色的文本处理语言,同时也是能够建立通过e-mail来读取和响应命令的自动响应系统的理想工具。这种的响应系统可以分成两个部分,其中的主要部分是从POP服务器读邮件,并分解成各种命令,然后通过一个简单的SMTP服务器来传递响应。系统的其他部分使用插件型体系来处理每一个独立的命令。

这一文章讲述的内容涉及到Net::POP3 和Net::SMTP模块。如果你没有安装这两个模块,请到最近的CPAN下载并安装它们。

最基本的系统

系统的功能非常的简单(可参见表A)。配置部分定义了要操作的各个参数。通过这些参数的配置,你可以最大限度地减少重要配置参数的丢失。参数配置信息也会让你得到抽象地思考。

第一步,首先生成或打开一个日志文件并把它作为一个缺省的输出文件。这就意味着我们所有输出不会显示在屏幕上而传入日志文件。如果想在屏幕上显示出来,你必须使用STDERR句柄。如果你只想在日志文件中保存最后一次操作的信息,只要把>>改变为>就可以。

接着,我们打开并读取一个别名文件。可以先看看下一个部分,“使用别名”,你就知道别名为何物,并知道如何使用它们。

最后一步是处理在POPACCTS数组中每一个邮件的数量。这个数组保存了服务器,用户名字,以及要处理的每一个邮件的密码。如果要获取数组的实际数据,我们必须访问每一个数组数据。实质上,POPACCTS是一个指向匿名数组的指针数组,其中的每一个匿名数组都包含三个元素:一个服务器,一个用户ID,一个密码。

最后一步就是返回一个标准输出句柄并关闭日志文件。

实际上邮件的内部处理是通过CheckMailbox()函数来实现的,也就是程序的核心。CheckMailbox()打开了与POP服务器连接,操作,并返回等待信息的数量。程序中的代码则读取每一个等待信息并处理查找from和subject的头句柄。

一旦这一头句柄被处理,代码就执行信息的主要部分。这一段代码也不会多于20行。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134