merci pour ces explications.
je vais tester tout ca :-)
Marc
> -----Message d'origine-----
> De : Edgar Bonet [mailto:ebo5@cornell.edu]
> Envoyé : mardi 11 décembre 2001 15:32
> À : Liste Guilde
> Objet : Re: envoyer un mail par script bash
>
>
> Aujourd'hui, Marc Hampartzoumian a écrit :
> > #!/bin/bash
> >
> > telnet smtp.quelque.part 25 << __EOF__
> > helo passerelle.adsl
> > mail from: alerte_passerelle_adsl@???
> > rcpt to: marc@???
> > data
> > Reply-To: marc@???
> > Subject: alerte log
> > Une nouvelle alerte a été générée.
> > .
> > QUIT
> > __EOF__
>
> Je vois à priori deux problèmes dans ton script :
> - il manque une ligne vide entre les en-têtes et le corps du
> message ;
> - les lignes doivent se terminer par CRLF dans le protocole SMTP.
> Le dernier point n'est peut-être pas grave, sauf si on tombe sur un
> serveur pointilleux sur les RFC.
>
> Par ailleurs, je n'ai jamais réussi à faire marcher un script avec
> telnet et je ne sais pas pourquoi. Mais ça marche bien avec netcat
> (commande nc). Voici un exemple testé qui marche :
>
> ---------- Couper ici ----------
> #!/bin/bash
>
> mailhost=...
> destinataire=...
>
> recode ../crlf << EOF | nc -i 1 $mailhost smtp > /dev/null 2>&1
> helo $HOSTNAME
> mail from: $USER@$HOSTNAME
> rcpt to: $destinataire
> data
> Date: $(date -R)
> From: $USER@$HOSTNAME
> To: $destinataire
> Subject: Bonjour
>
> Vous avez le bonjour du script bash.
>
> A+.
> .
> quit
> EOF
> ---------- Couper ici ----------
>
> La commande recode sert à convertir les fins de lignes Unix en SMTP
> (LF -> CRLF). L'option -i 1 dans netcat impose un délai de 1
> s entre les
> lignes. Sans ce délai ça marche mais le serveur renvoie plein
> d'erreurs
> (il essaye d'interpréter les lignes du message comme des
> commandes SMTP,
> je ne comprends pas pourquoi).
>
> --
> Edgar Bonet Tel : +33 476 881 096
> Laboratoire Louis Néel -- CNRS Mobile : +33 663 384 906
> 25 av. des Martyrs, BP 166 Fax : +33 476 881 191
> 38042 Grenoble cedex 9, France e-mail : bonet@???
>