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

Задачка с postfix

Добавлено: 02 окт 2007 17:46
hatred
Есть система, на которой стоит postfix, письма который приходят на него релеем он раскладыает по пользователям, пользователи так же почту отправляют через него при этом для отправки требуется авторизация. Так вот задача, нужно сделать так что бы, в заголовок письма было добавлено поле, допустим 'X-my-super-puper-field: On' но только в случае, если письмо отправлено пользователе и он получал авторизацию на сверезе, т.е. отправлял почту через свой логин/пароль.

Какими средствами можно это сделать?

ЗЫ надеюсь понятно объяснил

Re: Задачка с postfix

Добавлено: 04 окт 2007 14:47
loooser
Добавлять произвольные заголовки в постфиксе можно только внешними приблудами к сожалению. Я у себя так переправляю дату на локальную:

# master.cf:

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

smtp      inet  n       -       y       -       -       smtpd
                    -o content_filter=add-date:dummy

add-date    unix    -   n       n       -       2       pipe
    flags=Rq user=nobody argv=/usr/libexec/postfix/add-date.pl
    -f ${sender} -- ${recipient}
# add-date.pl:

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

#!/usr/bin/perl -w

use POSIX qw(setlocale LC_ALL strftime);
POSIX::setlocale( LC_ALL, "C" );
my $SENDMAIL="/usr/sbin/sendmail -G -i @ARGV"; # NEVER NEVER NEVER use "-t" here.
my $line;
my $date_changed_flag=0;
my $blank_line_flag=0;
my $current_date=POSIX::strftime("%a, %d %b %Y %H:%M:%S %z", ( localtime(time()) ));

open (PIPE, " | $SENDMAIL");

while ($line=<STDIN>) {
    $blank_line_flag=1 if $line=~m/^\r?\n$/;
    if ($blank_line_flag==0 && $date_changed_flag==0) {
        if ( $line =~ s/^Date: /X-Original-Date: / ) {
            $date_changed_flag=1; print PIPE "Date: $current_date\n";
        }
    }
    print PIPE $line;
}