[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] enviando e-mail
From: |
moysespr |
Subject: |
Re: [shell-script] enviando e-mail |
Date: |
Sat, 4 Oct 2003 14:26:24 -0700 (PDT) |
Tatsuo, desculpe a demora,só hoje estou checando meu correio.
Me parece que o "mail" que aparece nas suas linhas, normalmente é um
binário, que usa o sendmail,qmail ou outro MTA, previamente
configurado, para envio. Nisso não posso ajudar.
Não sei se te interessa, mas coloco abaixo uma solução básica em
script para o bash. Como você mencionou que precisa autenticar, isto
é coberto de uma forma muito simples que a maioria dos SMTP servers
deve aceitar (codificação Base64,aqui feita pelo mimencode). Se for
usar de forma efetiva é bom ver as formas mais seguras de
autenticação que o seu servidor suporta (p/ver é só ativar o diálogo
visível).
Não deverá precisar configurar outras ferramentas; está tudo no
script.
O envio é feito com a linha a seguir (sm), $1=destinatário,
$2=subject e $3=mensagem (no teu caso, conteúdo de arquivo, é só
adaptar)
sm address@hidden 'Teste via SMTP' 'Blah blah blah'
---------------script sm
#!/bin/bash
Server=smtp.provedor.com.br;Port=25
ACCOUNT='address@hidden'
NACC='Fulano Sobrenome'
PASSWD='ax3yz98arh'
#D=ver # descomentar a linha para visualizar diálogo SMTP
B64ACC=`echo -n "$ACCOUNT"|mimencode` # conta codificada em base64
B64PWD=`echo -n "$PASSWD"|mimencode` # senha codificada em base64
send(){
[ $D ]&&echo -en "S: $1\r\n"
echo -en "$1\r\n" >&3
[ $D ]&&{ while read -t 5 n <&3; do echo -e "\tR: $n"; done; }
}
exec 3<>/dev/tcp/"$Server"/$Port||\
{ echo "$Server:$Port inacessível!"; exit 1 ; }
send RSET
send "EHLO $Server"
send "AUTH LOGIN"
send "$B64ACC"
send "$B64PWD"
send "MAIL FROM: <$ACCOUNT>"
send "RCPT TO: <$1>"
send DATA
send "From: "'"'"$NACC"'"'" <$ACCOUNT>"
send "To: "'"'""'"'" <$1>"
send "Date: `date`"
send "Subject: $2"
send ""
send "$3"
send \.
send QUIT
exec 3<&-
---------------
Para uso definitivo, talvez até o cabeçalho da mensagem deva ser mais
aprimorado, mas como o script está na mão, você faz do jeito que
quiser. Mas respeite o protocolo SMTP nos pontos de comando. Também
lembre que o usuário às vezes deve ser address@hidden e não
apenas fulano na hora de autenticar.
Não lembro de mais nada que possa te ajudar. Boa sorte!
--- ClycioC <address@hidden> wrote:
> Bom dia, pessoal
>
> Gostaria de enviar um e-mail via shell script, usando um servidor
> smtp
> que nao está instalado no meu computador (exige login e senha).
> Como poderia fazer?
>
> se
> texto a enviar: texto.txt
> título da mensagem: Mensagem
> servidor smtp: smtp.abcd.com
> usuário: eu
> senha: secreto
>
> tentei
>
> cat texto.txt | mail -s "Mensagem" smtp address@hidden
> cat texto.txt | mail -s "Mensagem" smtp://address@hidden
>
> sem sucesso
>
>
> Agradeço qualquer ajuda,
> Tatsuo
>
>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com