shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] E-mail via shell


From: Marcos Braga
Subject: Re: [shell-script] E-mail via shell
Date: Fri, 14 Jul 2006 09:05:26 -0400
User-agent: Thunderbird 1.5.0.4 (Windows/20060516)

Reinaldo Marques de Lima escreveu:
From: "weder_feliciano" <address@hidden>
Reply-To: address@hidden
To: address@hidden
Subject: [shell-script] E-mail via shell
Date: Thu, 13 Jul 2006 23:01:39 -0000

Gostaria de saber se é possível criar um shell que mande e-mail em
modo texto, teria interesse em criar uma rotina, por exemplo, se tipo
um script achar o resulto x ele envia um e-mail para adm alertando. Se
tem como alguem pode me dizer o que preciso pra isso?
Reinaldo,

Há algum tempo atrás e com a ajuda da lista e outros scripts similares, desenvolvi este script que envia e-mail via telnet para resolver uma situação parecida com a tua, mas não tive tempo de deixá-lo com uma cara mais "profissional".

Utilize para tirar idéias de como fazer, se tiver alguma melhora, fique a vontade para passar em pvt.

--- início
#-- funcao enviaMail()
#versao: 2006011001
#-----
# script de mail
#
# o que deve ser informado:
# remetente = remetente do e-mail
# destinatario = destinatario do e-mail
# copia = com copia para
# assunto = assunto do e-mail, separado por ""
# anexo = variavel que contera' o texto a ser anexado
#
# nao importa a ordem das variaveis, mas devem ser carregadas antes
# da execucao da funcao para ter validade, caso contrario ocorrera
# um erro e o mail nao sera' enviado

email=eMail$$.sh
host=`hostname -s`
smtp=<ip do servidor de mail>
data=`LC_ALL=C date "+%a, %d %b %Y %k:%M:%S %z"`

enviaMail() {
[ -z $remetente ] && echo nao existe remetente && return 1
[ -z $destinatario ] && echo nao existe destinatario && return 1
echo '#!/bin/bash' > $email
echo -n "(" >> $email
echo "echo HELO $host; sleep 1" >> $email
echo "echo MAIL FROM: $remetente; sleep 1" >> $email
echo "echo RCPT TO: $destinatario; sleep 1" >> $email
[ ! -z "$copia" ] && echo "echo RCPT CC: $copia; sleep 1" >> $email
echo "echo DATA; sleep 1" >> $email
echo "echo User-Agent: Shell Script via Telnet" >> $email
echo "echo From: $remetente" >> $email
if [ -z "$assunto" ]; then
   echo "echo Subject: \"sem assunto\"" >> $email
else
   echo "echo Subject: $assunto" >> $email
fi
echo "echo Date: $data" >> $email
echo "echo To: $destinatario" >> $email
[ ! -z "$copia" ] && echo "echo Cc: $copia" >> $email
echo "echo \"\"" >> $email
echo "echo \"$anexo\"" >> $email
echo "echo \".\"; sleep 1" >> $email
echo "echo \"\"" >> $email
echo "echo QUIT" >> $email
echo ") | telnet $smtp 25" >> $email
chmod +x $email
./$email >/dev/null 2>/dev/null
rm -f $email
}
--- fim --

   Como é uma função, para utilizá-lo, informe as seguintes variáveis:

remetente=<email_do_remetente>
destinatario=<email_do_destinatário>
copia=<email_cc(se_houver)>
assunto=<assunto>
anexo=<texto_a_ser_anexado>

   Após carregar as variáveis digite "enviaMail" dentro do seu script.

Qualquer dúvida, posta na lista.

[]'s
Braga


reply via email to

[Prev in Thread] Current Thread [Next in Thread]