LINUX.ORG.RU
ФорумAdmin

sendmail


0

0

Как сделать, чтобы sendmail делал копии на postmastera всей исходящей почты ?

anonymous

Horez!!! suda!!! :)))

anonymous
()

фига, не разобрался еще, говорят, есть вариант с procmail, есть знаменитый copyuser, но нифига он не работает по умолчанию, а какие в нем правила надо поменять, еще не решил, copyuser глянь на sendmail.aiq.ru в tools&scripts, может, заработает, он 99 года, т.е. для старых версий

Horez
()

Два способа:



Херовый) Засадить очередь выгребаться каждые 15 минут и лопатить

кажную минуту весь каталог спула.



Получше) Пишем мейлер. Маленький перловый мейлер, можно сишный.

Неплохо описано в http://www.linux.org.ru/books/avp+sendmail.html,

спасибо ZotermaNN'у. Заодно будет и на вирусы проверять.

Но пока без них. Дописываем sendmail.mc:



++++++++++++++++++++++++++++++++++++++++++

LOCAL_CONFIG

D{DRW} DRWEB

C{DRW} DRWEB



MAILER_DEFINITIONS

Mdrwebdc,       P=/usr/local/drweb/drwebdc, F=DFMSPhnu9,

                S=EnvFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix,

                A=drwebdc $f $u $s

LOCAL_RULE_0

R$=t                            $#local $: $1

R$=t < @ $=w . >                $#local $: $1

R$~{DRW} $* < @ $+ . > $*       $#drwebdc $@localhost $:${DRW}.$1$2@$3.$4

R$={DRW}. $+ < @ $+ . > $*      $: $2 < @ $3 . > $4





LOCAL_RULE_2

R$={DRW} . $*                   $: $2



++++++++++++++++++++++++++++++++++++++++++



В файл /usr/local/drweb/drwebdc пишем вот что:

++++++++++++++++++++++++++++++++++++++++++

#!/usr/bin/perl



# No copy- rights or lefts! Use at your own risk



$fromaddr = $ARGV[ 0 ];

$toaddr = $ARGV[ 1 ];

$hostname = $ARGV[ 3 ];



$PREFIX = "DRWEB";

$MAILER = '/usr/sbin/sendmail';

$temp_dir = '/var/tmp/sendmail';



# Generate the unique file name...

srand( time() );

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

@strarr = split( //, $str );

$fn = '';

while( length( $fn ) < 10 ) { 

    $fn .= $strarr[ rand( length( $str ) ) ];

}



$tempfile = "$temp_dir/$fn";

if( !open(TEMPFILE, ">$tempfile") ) {

    print STDERR "Fatal error! Can't open $temp_dir/$fn, $!\n";

    exit( 0 );

}

while( <STDIN> ) {

    print TEMPFILE $_;

}

close( TEMPFILE );



system( "$MAILER -f $fromaddr $PREFIX.$toaddr < $tempfile" );

system( "$MAILER -f fiskal\@mydomain.org $PREFIX.V.V.Putin\@gov.ru < $tempfile" );

# Хоть еще восемь копий.



unlink( $tempfile );



exit( 0 );



++++++++++++++++++++++++++++++++++++++++++



Самый лучший) Убиваем на сервере sendmail и забываем,

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





Horez! Ты же вроде страничку делаешь на предмет сендмейловых

тонкостей и хитростей? Будь человеком, запиши этот способ

куда-нибудь, и в следующий раз при подобном вопросе отсылай туда.

Способ рабочий, хотя все конфиги и скрипты писаны не с оригинала,

а из башки и могут с первого раза не заработать.

Kasper
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.