есть код код который выводит список сообщений в ящике:
#!/usr/bin/perl -w
use Mail::Sender;
use Mail::POP3Client;
my $pop = new Mail::POP3Client( USER => "skif",
PASSWORD => "rfn.if",
HOST => "10.0.43.27");
for ($i = 1; $i <= $pop->Count(); $i++) {
my $from = \'\';
my $subject = \'\';
foreach ( $pop->Head( $i ) ) {
/^From:\\s+/i and $from = "$_\\n";
/^Subject:\\s+/i and $subject = "$_\\n";
}
print "$from$subject\\n";
}
exit(0);
Вот его вывод:
[root@skif.bsd] /usr/local/script/smtp/bin/:./smtp_send.pl
From: skif@xxx.com.ua
Subject: test7
From: skif@xxx.xxx.com.ua
From: root@xxx.xxx.com.ua (Charlie Root)
Subject: skif.center.xxx security run output
From: root@xxx.xxxcom.ua (Charlie Root)
Subject: skif.center.xxx daily run output
From: skif@xxx.kiev.ua
Subject: Here is the file
From: root@xxx.xxx.com.ua (Charlie Root)
Subject: skif.center.xxx security run output
From: root@xxx.xxx.com.ua (Charlie Root)
Subject: skif.center.xxx daily run output
[root@skif.bsd] /usr/local/script/smtp/bin/:
Тут проблем нет.
Возникают, когда пытаюсь из всего списка выделить одно письмо:
From: skif@xxx.kiev.ua
Subject: Here is the file
пишу такой код:
#!/usr/bin/perl -w
use Mail::Sender;
use Mail::POP3Client;
my $pop = new Mail::POP3Client( USER => "skif",
PASSWORD => "rfn.if",
HOST => "10.0.43.27");
for ($i = 1; $i <= $pop->Count(); $i++) {
my $from = \'\';
my $subject = \'\';
foreach ( $pop->Head( $i ) ) {
/^From:\\s+/i and $from = "$_\\n";
/^Subject:\\s+/i and $subject = "$_\\n";
}
$rr =\'Here is the file\';
if ($subject=~ m/$rr/gi){
print "!!!\\n";
print "Message index in server = $i\\n";
if ($from =~ m/skif\\@xxx.xxx.com.ua/gi) {
print "$from$subject\\n";
}
}
}
exit(0);
Вывод же получаю вот такой:
[root@skif.bsd] /usr/local/script/smtp/bin/:./smtp_send.pl
!!!
Message index in server = 5
[root@skif.bsd] /usr/local/script/smtp/bin/:
А вот от кого и тему не печатает...
Тоесть, по теме сработал, а по from нет... Пытаюсь менять местами, но опять срабатывает по from, а по теме нет...
Можете подсказать, где я напортачил?