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

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

Re: [shell-script] enviar e-mail a partir de um arquivo


From: moysespr
Subject: Re: [shell-script] enviar e-mail a partir de um arquivo
Date: Sat, 25 Oct 2003 07:06:43 -0700 (PDT)

Se você quer usar sendmail,qmail,etc. não posso ajudar.

Uma solução que postei há pouco tempo em puro bash está aí abaixo.
Revendo rapidamente, parece-me ótima para o que pretende, sendo:
$1=destinatário
$2=subject
$3=mensagem

Assim, pelo que você descreveu, no seu caso o uso deveria ser:

while read n;do
sm `echo $n|cut -d" " -f1` "suas notas" \
`echo '"'`echo $n|cut -d" " -f2-``echo '"'`
done<seu_arquivo

Tenha em mente que:
1. o script foi preparado para uma mensagem avulsa; você pode testar
assim para uma lista de 2 ou 3 nomes; se desejar usar em definitivo
recomendo que o altere e embuta esse while no script; ou melhor crie
um while parametrizado que poderá usar em muitas listas e temas
2. a recomendação 1 é porque haverá um login no servidor para cada
linha e isso está errado; deverá ser feito um login no servidor smtp
e enviado tudo para aquele servidor e, então feito logout
3. não testei o while acima, pode conter erros de sintaxe, mas a
essência está aí.

Se restarem dúvidas é só perguntar. Se julgar fora do scopo da lista,
em pvt, sem problemas.



--------sm
#!/bin/bash
Server=smtp.domain.com;Port=25
ACCOUNT='address@hidden'
NACC='Fulano Sobrenome'
PASSWD='senha'

#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<&-
---------



--- fernando pizani <address@hidden> wrote:
> Olá pessoal, 
> vamos supor que eu tenha um arquivo com varios
> registros. Cada registro tem o e-mail, primeira nota e
> segunda nota de um aluno. Como faço pra enviar um
> e-mail pra cada e-mail no arquivo, enviando as notas
> de cada um? 
> 
> 
> Yahoo! Mail - o melhor webmail do Brasil
> http://mail.yahoo.com.br
> 


__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com


reply via email to

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