#!/usr/bin/perl use lib qw(/usr/lib/perl5/site_perl/5.005); #!/usr/local/bin/perl ## ## mh_mha.pl - Roberto João Lopes Garcia - ter dez 5 11:20:33 BRST 2000 ## ## Rotinas de pós processamento das mensagens convertidas pelo programa mhonarc ## ## O programa /usr/bin/mhonarc deve ser alterado para chamar as rotinas ## existentes nesse arquivo. Alteração como no exemplo abaixo ## ## MAIN: { ## unshift(@INC, 'lib'); # Should I leave this line in? ## ## require 'mhamain.pl' || die qq/ERROR: Unable to require "mhamain.pl"\n/; ## mhonarc::initialize(); ## if(mhonarc::process_input()) { ## require 'mh_mha.pl' || die qq/ERROR: Unable to require "mh_mha.pl"\n/; ## mhonarc::mha_post(); ## } ## else { ## exit($mhonarc::CODE); ## } ## ## Um link simbólico deve ser feito com esse arquivo como abaixo ## ## ln -s /home/httpd/html/mha_mail/m2html/mrc/mh_mha.pl /usr/lib/perl5/site_perl/5.005/mh_mha.pl ## ## ************ AS LINHAS ABAIXO DEVEM SER INSERIDAS NO ARQUIVO mhamain.pl ********** ## *********** SUB read_mail_header() ANTES DE OBTER Get Msg-ID msgid ## ## ##---------------------------------------------------------## ## ## auto_s EXTERNA - ROBERTO sex dez 8 12:41:45 BRST 2000 ## ## ##---------------------------------------------------------## ## $auto_s=$fields{'auto-submitted'}; ## ## ## ************ AS LINHAS ABAIXO DEVEM SER INSERIDAS NO ARQUIVO mhamain.pl ********** ## *********** SUB doit() TODA A VEZ, E ABAIXO DE: ## ***** if ($index ne '') { ## ***** ($From{$index},$Date{$index},$Subject{$index}) = ## ***** ($from,$date,$sub); ## ## $Auto_Sub{$index} = $auto_s; #### Auto-Submitted: ROBERTO 08/12/2000 ## ## ************ AS LINHAS ABAIXO DEVEM SER INSERIDAS NO ARQUIVO mhinit.pl ********** ## *********** SABAIXO DE: %From = (); # Message indexes to froms ## ## %Auto_Sub = (); # Campo Auto-Subimitted - ROBERTO 08/12/2000 ## package mhonarc; sub t2s { my @wdays = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); my @mons = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); eval { require POSIX; }; $tz=POSIX::strftime("%z", $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst); $yearfull = $year + 1900; $wd = $wdays[$wday]; $m = $mons[$mon]; $sec = sprintf("%02d", $sec); $min = sprintf("%02d", $min); $hour = sprintf("%02d", $hour); $mday = sprintf("%02d", $mday); $yearfull = sprintf("%04d", $yearfull); $str=sprintf("%s, %s %s %s %s:%s:%s %s", $wd, $mday, $m, $yearfull, $hour, $min, $sec, $tz); ####print "Antes de sair da função: $str\n"; return $str; } sub mha_post { foreach $index (keys %mhonarc::AddIndex) { $subject = $mhonarc::Subject{$index}; $from = $mhonarc::From{$index}; $usr = $ENV{E_NAME}; ### ALTERAR DEPOIS PARA E_NAME APENAS $nm_usr = $ENV{E_USR}; ### NOME DO USUÁRIO $nrp = $usr; $nrp =~ s/prj//; $date = $mhonarc::Date{$index}; $nr = $mhonarc::IndexNum{$index}; $nr2 = &mhonarc::fmt_msgnum($nr); $msg = $mhonarc::Message{$index}; $msg =~ s//Arquivo Convertido: /g; ### RETIRA LINKS DOS ARQUIVOS RECEBIDOS $fn = &mhonarc::msgnum_filename($nr); $addr = &mhonarc::extract_email_address($from); $nm = &mhonarc::extract_email_name($from); $nm = &readmail::MAILdecode_1522_str($nm,0); ###print "From: $from Addr: $addr Nome: $nm\n\n"; $auto = $Auto_Sub{$index}; ###if(!defined($auto)) { print "Auto Not Defined\n";} ###print "Auto: $auto\n\n"; #$dt = localtime; #$dt2 = gmtime; #$dt3 = getdate(time); #$dt4 = time2str('%a, %d %b %Y %H:%M:%S -0000', time); $dt4=t2s; $id_msg = $Index2MsgId{$index}; ### ### SE A MENSAGEM TEM O CAMPO Auto-Submitted NÃO ENVIA CONFIRMAÇÃO ### ##if(!defined($auto)) { ###if(!defined($auto) && $addr ne "$usr\(_at_)mha(_dot_)com(_dot_)br") ###open(ROB, ">$mhonarc::OUTDIR/rob.txt") || die("Nao pode abrir $mhonarc::OUTDIR/rob.txt: $!"); $usr_addr=$usr . '@mha.com.br'; ###print ROB "$addr $usr_addr\n"; ###close(ROB); if((!defined($auto)) && ($addr ne $usr_addr)) { open(RFR, ">$mhonarc::OUTDIR/$nr2.msg") || die("Nao pode abrir $mhonarc::OUTDIR/$nr2.msg: $!"); ###$nr2print RFR "sendmail $addr\n"; #print RFR "Date: $dt\n"; #print RFR "Date: $dt2\n"; #print RFR "Date: $dt3\n"; ###print RFR "Return-Path: <$usr\(_at_)mha(_dot_)com(_dot_)br>\n"; print RFR "X-Mailer: The 777ind - MHA Engenharia Ltda\n"; print RFR "X-Sender: $usr\(_at_)mha(_dot_)com(_dot_)br\n"; print RFR "Date: $dt4\n"; print RFR "To: $addr\n"; print RFR "From: $nm_usr <$usr\(_at_)mha(_dot_)com(_dot_)br>\n"; print RFR "Subject: Re: $subject [MHA $nrp/$nr2]\n"; print RFR "In-Reply-To: <$id_msg>\n"; print RFR "Auto-Submitted: Auto-Replied (Receiving-Confirmation)\n"; print RFR "Mime-Version: 1.0\n"; print RFR "Content-Type: multipart/mixed;\n"; print RFR " boundary=\"=====================_The_777ind_20001205_$nrp\_$nr2==_\"\n\n"; print RFR "--=====================_The_777ind_20001205_$nrp\_$nr2==_\n"; print RFR "Content-Type: text/plain; charset=\"us-ascii\"; format=flowed\n\n"; print RFR "$nm,\n\n"; print RFR "*** Confirmação automática de recebimento de mensagem eletrônica - E-MAIL ***\n"; print RFR " (Eletronic mail received - automatic confirmation)\n\n"; print RFR "Vossa mensagem foi recebida pelo Sistema de Recebimento de Mensagens da\n"; print RFR "MHA Engenharia Ltda e registrada sob o número:\n"; print RFR "(Your message was received by MHA Engenharia Ltda's Message Receiving System)\n"; print RFR "(It was registered as number:)"; print RFR "\n\n\t\t\t$nrp/$nr2\n\n"; print RFR "Essa mensagem foi gerada automaticamente, favor não responde-la.\n"; print RFR "(This message was automatically generated, please do not reply.)\n\n\n"; print RFR "--(Original message) Segue cópia da vossa mensagem original - $date --\n\n"; print RFR "--=====================_The_777ind_20001205_$nrp\_$nr2==_\n"; print RFR "Content-Type: text/html; charset=\"us-ascii\"\n\n"; print RFR "
\n"; print RFR "$msg"; print RFR "
\n\n"; print RFR "--=====================_The_777ind_20001205_$nrp\_$nr2==_\n.\n"; close(RFR) || die("Nao pode fechar $mhonarc::OUTDIR/$nr2.msg: $!"); if (-e "$mhonarc::OUTDIR/$nr2.msg") { $resp= "/usr/bin/ssh -l ?????? ?????? ?????? ????? ?????? \"sendmail $addr\" < $mhonarc::OUTDIR/$nr2.msg"; ###print "Resp= $resp\n"; system("$resp"); ###print "Após o envio!\n"; } } $msg_dir="$mhonarc::OUTDIR/$mhonarc::MsgPrefix$nr2"; if (-d "$msg_dir") { ###print "Existe diretório $msg_dir! Verificando Virus ...\n"; $cmd="/home/httpd/html/mha_mail/m2html/mrc/scan_drv.scr $msg_dir"; system("$cmd"); ### && die("Nao pode executar system(): $!\n"); } else { ###print "Não existe diretório $msg_dir!\n"; } } } 1;