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

[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


reply via email to

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