зачем это вообще нужно - вопрос сложный, но возникла необходимость из одной папки формата mbox вытащить все почтовые адреса отправителей, кроме одного домена (наш локальный рабочий. Скажем так mylocal.net). В папке находится спам, пришедьший года за три на порядка полсотни ящиков. Вручную малоприятное занятие. Сам в програмировании не очень силен. В итоге получилась такая вещь: #!/usr/bin/perl my $conf = "../etc/spamtest.conf"; (^^^тут прописаны пути к трем следующим файлам) my $spamtest_stop_log = undef(); my $spam_mailbox = undef(); my $spam_list = undef(); load_conf(); sub load_conf { open (CONF,"<$conf") || die "Cant open $conf\n"; while (<CONF>) { chomp; ($option,$value) = split(/=/); $spamtest_stop_log = $value if $option eq "spamtest_stop_log"; $spam_mailbox = $value if $option eq "spam_mailbox"; $spam_list = $value if $option eq "spam_list"; } close CONF; } open SPAMLIST, ">>$spam_list"; open START, "$spamtest_stop_log"; $iii = <START>; close START; open LOG, "$spam_mailbox"; for ($i = 1; $i <= $iii; ++$i) { $tmpsss = <LOG>; } foreach(<LOG>) { $iii+= 1; s/[<]/ /g; s/[>]/ /g; s/[:]/ /g; { next unless ($retpach) = m/(Return-Path)\s+(\w*)/g; s/Return-Path //g; s/X-Return-Path //g; print "$_\n"; print SPAMLIST $_; } } close SPAMLIST; open STOP, ">$spamtest_stop_log"; print STOP $iii; close STOP; недостатками является то, что если кто-то нашей локалки пересылал на этот ящик пришедьший ему спам, то в Return-Path оказывается его почтовый ящик. теперь два вороса: 1. как сделать, чтоб адреса содержащие @mylocal.net не попадали в SPAMLIST (на крайняк - как потом уже из готового вырезать строки содержащие этот адрес) 2. мельком посмотрел результат и заметил что есть одинаковые адреса. Как сдалать так, чтоб одинаковые адреса в SPAMLIST печатались один раз
Ответ на:
комментарий
от kpanic
Ответ на:
комментарий
от deys
Ответ на:
комментарий
от kpanic
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Решил освоить perl =) (2005)
- Форум помогите найти ошибки в следующем перловом коде (2004)
- Форум Парсинг логов в MySQL с помощью Perl скрипта (2017)
- Форум rtorrent перемещение complete файлов (2014)
- Форум мониторинг изменений конфигурационных файлов системы (2007)
- Форум Настройка WireGuard #2 (2016)
- Форум Настройка VPN (2014)
- Форум \[палёный мёд\] фантазии на тему своего ЯП (2013)
- Форум Postfix + Rouncube - SMTP error (-1) при отправке сообщения. (2019)
- Форум Переодически вылетает ошибка 502 - nginx (2016)