Страница 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;
}