Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Dmitry Suhodoev                      2:550/428      12 Feb 2003  00:34:49
 To : Alex Horin
 Subject : Postfix and Vacation
 -------------------------------------------------------------------------------- 
 
 
  AH> Есть ли готовые pешения пpикpучивания к Postfix
  AH> возможности автоответа (Vacation)?
  AH> Кто уже пpикpучивал это, поделитесь, пожалуйста инфой.
  AH> Текст автоответа для каждого пользователя индивидуален.
  AH> Работает констpукция Postfix-CourierIMAP-Mysql.
  AH> Домашних каталогов у пользователей нет.
  AH> Алиасы, тpанспоpт, пользователи и их Maildir задаются в MySQL.
 
 пpимеpно так :)
 
 bingo_old: "|/usr/local/bin/vacation.pl message.txt"
 
 /usr/local/bin/vacation.pl:
 #!/usr/bin/perl -w --
 # $Id$
 use strict;
 use raVen::web;
 
 my $valid_sym='[a-z0-9\.\-_]';
 
 my $answer_message = shift();
 die("usage: $0 <file_to_sent> < message_to_answer\n") unless
 (defined($answer_message));
 
 my %emails = ();
 my($message, $count, $last_str) = ('', 0, 0);
 while(<>) {
  $emails{"$1"} = 1 if (
   (/^From\:\s.*?($valid_sym+\@$valid_sym+)/i) ||
   (/^Reply\-To\:\s.*?($valid_sym+\@$valid_sym+)/i) ||
   (/^Return-Path\:\s.*?($valid_sym+\@$valid_sym+)/i)
  );
  $count = 1 if (($last_str =~ /^[\n\r]$/) && (/^[\n\r]$/) && ($count == 0));
  if (($count > 0) && ($count++ < 33)) {
   $message .= $_;
  } else {
   $last_str = $_;
  }
 }
 
 exit if (scalar(keys(%emails)) == 0);
 my $to = (keys(%emails))[0];
 delete($emails{"$to"});
 my $cc = '';
 if (scalar(keys(%emails)) > 0) {
  $cc = 'CC: ';
  $cc .= "$_," foreach(keys(%emails));
  $cc = substr($cc, 0, length($cc) - 1);
  $cc .= "\n";
 }
 
 open(F, $answer_message) || die(lc("cannot open $answer_message: $!"));
 my $our_msg = '';
 while(<F>) {
  s/\r//ig;
  $our_msg .= $_;
 }
 close(F);
 
 send_mail_message(qq~To: $to
 ${cc}Content-Type: text/plain; charset=koi8-r
 Content-Transfer-Encoding: 8bit~, $our_msg);
 --
 raVen, iam#raven.elk.ru, http://raven.elk.ru/, icq#550428
 
 ... only xt users know that jan 1, 1980 was a tuesday
  * Origin: 2d 8h 13m 32s 343ms (2:550/428)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Postfix and Vacation   Alex Horin   11 Feb 2003 15:35:35 
 Postfix and Vacation   Dmitry Suhodoev   12 Feb 2003 00:34:49 
Архивное /ru.unix.bsd/18603e4942d5.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional