Задачка с postfix

Всё о линукс сообществе Владивостока, организационные вопросы и предложения, проекты, линуксовки
Ответить
Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Задачка с postfix

Сообщение hatred »

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

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

ЗЫ надеюсь понятно объяснил
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Re: Задачка с postfix

Сообщение 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;
}
Последний раз редактировалось loooser 04 окт 2007 14:57, всего редактировалось 1 раз.
Танки пробок не боятся...

Ответить