[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RES: [shell-script] Enviar email com cliente Telnet!
From: |
Eliphas Levy Theodoro |
Subject: |
Re: RES: [shell-script] Enviar email com cliente Telnet! |
Date: |
Tue, 05 Jul 2005 12:44:46 -0300 |
User-agent: |
Mozilla Thunderbird 1.0.2 (Windows/20050317) |
Julio Cezar Neves - DATAPREVRJ escreveu:
Fala Eliphas,
tudo bem amigo? Não foi na indentação que o Edimar se machucou pq o que
interessa é que o label (no caso MAIL) esteja sozinho em uma linha sem tabs
nem brancos (se bem que se vc fizer o here documment com <<- e não com <<,
estes dois caracteres podem ser usados).
Ele se deu mal pq não passou usuário nem senha para o telnet e o cmd de mail
dele está errado. Para usar o telnet desta forma, só existe uma maneira que
eu conheça (e acho uma titica) que é a seguinte:
(sleep 3; echo $USUARIO; sleep 3; echo $SENHA; sleep 3; echo ls -l; sleep 3)
| telnet xxx.xxx.xxx.xxx
Se o nosso amigo Edimar precisar muito fazer este e-mail via telnet, ele
deverá substituir o ls -l pelo cmd de mail.
Faala Julio! Na paz por aqui.
O problema não é esse. O telnet dele não é para a porta padrão de telnet
(com login e senha), e sim diretão para um MTA na porta SMTP (porta 25).
O MTA não gosta muito de outros MTAs engraçadinhos que "entopem" a
conexão direto sem esperar que ele diga "ok, manda algo". Os testes que
eu fiz aqui confirmaram isso.
Outra coisa, é que o email que ele está mandando não segue as RFCs. Isso
vai ser um problema se o MTA que está recebendo tiver algum anti-spam ou
simplesmente seja chatinho quanto aos padrões.
Outra coisa ainda, é que quando você passa o comando "." (fim de DATA)
ele *deve* estar sozinho na linha, ou o MTA não vai entender que é o
"fim da transmissão, câmbio".
Fiz uma "variação" da versão dele, usando pipe e vários sleeps, e este
sim funciona (claro, trocando as variáveis heh). Porém, se o MTA que vai
receber a mensagem "pipocar" por alguma razão, tipo bloqueio de relay,
ninguém vai saber. O outro que eu fiz pelo menos avisa o que houve ';)
#!/bin/bash
from="address@hidden"
to="address@hidden"
subject="Test"
server="smtp.example.com"
body="Isto é um teste."
date=`LC_ALL=C date "+%a, %d %b %Y %k:%M:%S %z"`
{
sleep 1
echo "EHLO $HOSTNAME"
sleep 1
echo "MAIL FROM: $from"
sleep 1
echo "RCPT TO: $to"
sleep 1
echo "DATA"
sleep 1
echo "FROM: $from"
echo "TO: $to"
echo "SUBJECT: $subject"
echo "Date: $date"
echo
echo "$body"
echo "."
sleep 1
echo "quit"
} | telnet $server 25
--
Eliphas