Страница 1 из 1

exim. Выполнение внешнего скрипта или как лучше организовать

Добавлено: 2009-04-01 16:27:32
coDEbugger
Доброго времени суток. Проблема следующая - от человека А приходит письмо на сервер. Ему отсылается автоматически сообщение от exim'a чтобы он переотправил сообщение, дабы доказать, что не является спамером. После чего он добавляется в white list и последующие письма от него просто обрабатываются антиспамом(dspam) и пропускаются. Написал скрипт для этой задачи

Код: Выделить всё

#!/usr/bin/perl -w
use strict;
use DBI;

my $database = "exim";
my $hostname = "localhost";
my $port = "3306";
my $user = "root";
my $password = "xxx";

my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
my $dbh = DBI->connect($dsn, $user, $password);

my $sth = $dbh->prepare("SELECT * FROM lists WHERE address = '$ARGV[0]'");
$sth->execute();
my $row = $sth->fetchrow_hashref();

if( $row->{'address'} ) {
        unless( $row->{'isValid'} ) {
                $dbh->do("UPDATE lists SET isValid = 1 WHERE id = '$row->{'id'}'");
        }
        exit 1;
} else {
        $dbh->do("INSERT INTO lists(address,isValid) VALUES('$ARGV[0]',0)");
        exit 0;
}
1. Как в exim вызвать этот скрипт с параметром - адрес отправителя?
2. Как проанализировать ответ от скрипта (1 или 0) и принять решение - отправить ли пользователю сообщение с запросом повторной посылки письма или нет?

Re: exim. Выполнение внешнего скрипта или как лучше организовать

Добавлено: 2009-04-02 14:11:30
nixsupport
всё это легко(с доработкой скрипта, а именно нужный код perl сделать функцией) можно вызвать в условии condition и там же передать параметр(только по большей степени передавать параметры ненужно perl в связке с exim сам знает многие переменные) и получить то что возвращает функция в скрипте.
Посмотри доки там написано, правдо маловато, но всё же, и ещё посмотри по форуму, в данном случае даже необязательно использовать perl чтобы зделать то что ты хочешь.

Re: exim. Выполнение внешнего скрипта или как лучше организовать

Добавлено: 2009-04-02 15:58:17
Morty
класная мысль ))
чем-то схожа с проверкой получателя в своей базе , но умнее

Re: exim. Выполнение внешнего скрипта или как лучше организовать

Добавлено: 2009-04-02 17:25:06
nixsupport
Для кого как мысль, этож типа грейлистинга тока фактически письмо надо вручную посылать, когда при грейлистинге повтор доставки осуществляется сервером, короче у данного метода больше недостатков чем преимуществ, как я писал выше всё это легко реализовать средствами самого экзима, но смысла я в этом невижу.

ПЫСЫ. Копайте роутеры, в частности пример vacation посмотрите.

Re: exim. Выполнение внешнего скрипта или как лучше организовать

Добавлено: 2009-04-08 9:57:08
Laa
Мысль плохая. Можно не получить письма от веб-форм регистрации на форумах, аукционах и тд. Там врядли скрипты получают почту, и, даже если получают, точно не будут отвечать на них. 8)