WEB开发网
开发学院操作系统Linux/Unix 系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒... 阅读

系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒

 2008-11-11 08:28:08 来源:WEB开发网   
核心提示: 为了实现这个功能,您需要设置一个邮件文件夹或者系统,系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒(4),用户可以在其中发送他们的电子邮件,以便对电子邮件进行扫描,但这些原则可以很容易地应用于其他的垃圾邮件过滤环境,清单 1 显示了一个简单 Perl 脚本,并且 Bayesian 过滤器

为了实现这个功能,您需要设置一个邮件文件夹或者系统,用户可以在其中发送他们的电子邮件,以便对电子邮件进行扫描,并且 Bayesian 过滤器可以“判断”电子邮件是否为垃圾邮件(系统判断为“真实”的垃圾邮件)或者非垃圾邮件(系统判断为“垃圾邮件”的真实电子邮件)。

通常,比较简单的做法是设置一个单独的邮箱,以便使用一个邮箱来保存垃圾邮件,而使用另一个邮箱来保存非垃圾邮件。在支持用户之间相互学习的系统中,您可以在每个邮箱中为用户设置相应的文件夹。在本文所给出的几个示例中,假定您正在使用基于 SpamAssassin 和 IMAP 的邮件系统,这样一来,您可以读取并解析邮件内容,并且允许使用 SpamAssassin 学习其中的细节信息,但这些原则可以很容易地应用于其他的垃圾邮件过滤环境。

清单 1 显示了一个简单 Perl 脚本,它可以访问全局邮箱、下载每个消息、然后向 spamassassin 和 Razor 报告其中的内容。

清单 1. 用于报告和学习垃圾邮件的脚本

#! /usr/bin/perl
$SpamFolder = "INBOX";
$Server   = 'imap.mcslp.pri';
$User    = 'spam';
$Password  = 'ilovespam';
use Mail::IMAPClient;
# Open the connection to the mail server
my $SPAMIMAP = Mail::IMAPClient -> new (Server  => $Server,
                    User   => $User,
                    Password => $Password);
if (!defined($SPAMIMAP))
{
  print "Error: $@n";
}
# Select the Spam Folder
$SPAMIMAP->select($SpamFolder);
# Get a list of Message IDs
my @MIDs = $SPAMIMAP->messages();
# Exit if there aren't any messages to process
if (scalar(@MIDs) == 0)
{
  exit(0);
}
# Create a temporary directory to hold our message text
mkdir '/tmp/spamreport',0000;
# Process each ID
foreach $MID (@MIDs)
{
# Get the message text, and write the text out to
# test file
  my $path = "/tmp/spamreport/$MID";
  my $msgtext = $SPAMIMAP -> message_string($MID);
  open(FILE,">$path");
  print FILE $msgtext;
  close(FILE);
# Run the SpamAssassin learn script on the file
  system("cat $path|sa-learn --spam");
# Run the Razor reporter on the message content
  system("cat $path|razor-report");
# Delete the original message
  $SPAMIMAP->delete_message($MID);
# Delete the temporary file
  unlink($path);
}
# Empty the trash and disconnect
$SPAMIMAP->expunge();
$SPAMIMAP->disconnect();

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:系统 管理 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接