Почтовые сервера EXIM, sendmail, postfix, Dovecot и инфраструктура: MTA/MDA, антиспам, web‑почта, маршрутизация и эксплуатация почтовых систем.
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
coDEbugger
- проходил мимо
- Сообщения: 9
- Зарегистрирован: 2009-01-11 16:24:50
Непрочитанное сообщение
coDEbugger » 2009-04-01 16:27:32
Доброго времени суток. Проблема следующая - от человека А приходит письмо на сервер. Ему отсылается автоматически сообщение от 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) и принять решение - отправить ли пользователю сообщение с запросом повторной посылки письма или нет?
coDEbugger
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
nixsupport
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-01 21:53:38
Непрочитанное сообщение
nixsupport » 2009-04-02 14:11:30
всё это легко(с доработкой скрипта, а именно нужный код perl сделать функцией) можно вызвать в условии condition и там же передать параметр(только по большей степени передавать параметры ненужно perl в связке с exim сам знает многие переменные) и получить то что возвращает функция в скрипте.
Посмотри доки там написано, правдо маловато, но всё же, и ещё посмотри по форуму, в данном случае даже необязательно использовать perl чтобы зделать то что ты хочешь.
nixsupport
-
Morty
- ст. лейтенант
- Сообщения: 1370
- Зарегистрирован: 2007-07-17 23:25:12
Непрочитанное сообщение
Morty » 2009-04-02 15:58:17
класная мысль ))
чем-то схожа с проверкой получателя в своей базе , но умнее
Morty
-
nixsupport
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-01 21:53:38
Непрочитанное сообщение
nixsupport » 2009-04-02 17:25:06
Для кого как мысль, этож типа грейлистинга тока фактически письмо надо вручную посылать, когда при грейлистинге повтор доставки осуществляется сервером, короче у данного метода больше недостатков чем преимуществ, как я писал выше всё это легко реализовать средствами самого экзима, но смысла я в этом невижу.
ПЫСЫ. Копайте роутеры, в частности пример vacation посмотрите.
nixsupport
-
Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Непрочитанное сообщение
Laa » 2009-04-08 9:57:08
Мысль плохая. Можно не получить письма от веб-форм регистрации на форумах, аукционах и тд. Там врядли скрипты получают почту, и, даже если получают, точно не будут отвечать на них.

exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
Laa