alias temporal

Miguel Oyarzo O. admin en aim.cl
Mar Jul 18 16:22:47 CLT 2006


At 13:32 18-07-2006, Victor Hugo dos Santos wrote:
>Hola y buenas tardes.
>
>Existe alguna manera de crear alias de correos temporales ??? que
>sirvan solamente por un correo ???
>
>digamos que quiero tener un alias ot123456 en miempresa.cl por ejemplo y
>que estes solamente reciba un correo y que lo reenvie a
>soporte en miempresa.cl y que luego despues de esto ya no exista mas.
>
>alguien ya ha echo esto, sin tener la necesidad de modificar
>/etc/aliases y ejecutar newaliases a todo instante ???
>
>salu2
>Victor Hugo dos Santos

hummm
sin programar lo veo dificil.

Intenta reutilizar este viejo codigo en Perl que escribí hace unos anios. Puede
que te sirva como base (deja pasar solo una vez un correo y no usa aliases ni nada).

en tu /etc/mail/virtusertable (o similar) agrega:
---
@algun_prefjo.miempresa.cl     alguna_variable
---
y en /etc/aliases
---
alguna_variable: "| /home/admin/programita_en_perl.pl"
---

programita_en_perl.pl
=========================
#!/usr/bin/perl
# Descompone el correo en variables
while(<STDIN>) {
        s/\r|\n//g;
        if (/^(\S+):\s+(.*)/) {
                $header{lc($1)} = $2;
                $lastheader = lc($1);
                }
        elsif (/^\s+(.*)/ && $lastheader) {
                $header{$lastheader} .= $_;
                }
        elsif (!$_) { last; }
        }
while(<STDIN>) {
        $body .= $_;
        }

# Separa user y dominio
($touser, $todom) = split(/\@/, $header{'to'});

# todo en miuscula para evitar error
$todom=~tr/A-Z/a-z/; 
$touser=~tr/A-Z/a-z/;

# Aqui coloca tu codigo  (puedes agregar verificacion de formatos especificos en user)
# 
$correo_fue_enviado={ (0 | 1) : Bucar la OT o el correo en algun archivo plano o base de datos }
#
#


if( ! $correo_fue_enviado) {
open(MAIL,"|/usr/lib/sendmail  -t soporte en miempresa.cl ") or die "No puedo abrir sendmail !";
        print MAIL "Reply-to:  $header{'from'}\n";
        print MAIL "From: $header{'from'}\n";
        if ($header{'subject'}) { print MAIL "Subject: $header{'subject'}\n" }
        else                    { print MAIL "Subject: Message\n" }
        print MAIL "To: $to\n\n";
        print MAIL $body;
close(MAIL);
} else {

# escribe $touser en la base de datos o en el archivo plano. 
# ( ot123456 en miempresa.cl solo deberia llegar una vez a soporte en miempresa.cl )

}

Ojala te sirva

Salu2

Miguel Oyarzo
Austro Internet
Punta Arenas





Más información sobre la lista de distribución Linux