The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Sendmail: Скрипт чтения почты и удаления ненужных писем"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Sendmail: Скрипт чтения почты и удаления ненужных писем"  +/
Сообщение от radiks (ok) on 29-Июн-09, 12:50 
Подскажите, пожалуйста, как написать скрипт для чтения моего почтового ящика и удаления всех писем с определенным содержимым, которое я могу указать (содержимое).
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Sendmail: Скрипт чтения почты и удаления ненужных писем"  +/
Сообщение от Medlar email(ok) on 29-Июн-09, 14:46 
это задача для procmail или для вашего imap/pop3 демона, но никак не для sendmail

хотя milter-regex думаю справился бы с этим, но раньше, то есть на этапе smtp-диалога.
Но это тяжеловесное решение

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Sendmail: Скрипт чтения почты и удаления ненужных писем"  +/
Сообщение от TyLLIKAH on 29-Июн-09, 16:42 
>Подскажите, пожалуйста, как написать скрипт для чтения моего почтового ящика и удаления
>всех писем с определенным содержимым, которое я могу указать (содержимое).

Не очень понятно кто и откуда его читать будет

#!/usr/bin/perl -w

use Net::IMAP::Simple;

my $imap = Net::IMAP::Simple->new('mail.domain.tld') ||
    die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
    
# Log on
if(!$imap->login('USERNAME_HERE', 'PASSWORD_HERE'))
{
    print STDERR "Login failed: " . $imap->errstr . "\n";
    exit(64);
}

my $nm = $imap->select('Inbox'); # Имя папки

for(my $i = 1; $i <= $nm; $i++)
{
    my $message = $imap->get($i);
    print for @{$message}; # Или не печатаем, а анализируем
    $imap->delete($i);
}

$imap->quit;

для POP3 переделывайте сами

ещё можно procmail или лучше sieve заставить это делать прямо на стороне сервера.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Sendmail: Скрипт чтения почты и удаления ненужных писем"  +/
Сообщение от radiks (ok) on 29-Июн-09, 17:20 

>ещё можно procmail или лучше sieve заставить это делать прямо на стороне
>сервера.

спасибо, а не подскажете как sieve настроить с dovecot?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Sendmail: Скрипт чтения почты и удаления ненужных писем"  +/
Сообщение от TyLLIKAH on 29-Июн-09, 18:13 
>спасибо, а не подскажете как sieve настроить с dovecot?

dovecot.conf

protocol lda {
  postmaster_address = postmaster@nospam.thank.you
  hostname = mail.domain.tld
  mail_plugins = cmusieve
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  log_path = /var/log/dovecot-local-deliver.log
  sendmail_path = /usr/sbin/sendmail
  auth_socket_path = /var/run/dovecot/auth-master
  # sieve_global_path = /tmp/dovecot.sieve <- один на всех
}


plugin {
  sieve = /mail/sieve-scripts/%u.sieve <- каждому свой скрипт
  ...
}


postfix/master.cf
...
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}

# vmail владеет почтовыми каталогами (папками, где письма хранятся)


postfix/main.cf
...
dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
...

как в sendmaile не знаю, сорри

потом

/mail/sieve-scripts/postmaster@domain.tld.sieve #пример sieve скрипта

require ["fileinto", "body"];
if body :raw :contains "Session aborted, reason: lost connection"
{
    fileinto "urgent.lost";
    stop;
}
elsif header :is "Subject" "port_scanned_on_site"
{
    fileinto "portscan";
    stop;
}

вроде ничего не забыл

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру