Another blog



Envoi de mail en ligne de commande : Sendmail

Publié le 07/02/2008 par Another

Envoyer un mail avec pièce(s) jointe(s) depuis un script "batch"

Sous dos, lorsqu'il s'agit d'envoyer des mails en ligne de commande, via un script batch par exemple, on trouve vite ses limites... Telnet permettant de le faire mais uniquement en mode intéractif car ce dernier n'accepte pas de fichier de commandes.

J'ai donc développé cette application en C#. Je ne voulais pas d'un application trop compliquée à utiliser pour envoyer des mails, par conséquent cette dernière assure le minimum syndical : Envoi de mail avec pièce(s) jointe(s).

Vous trouverez en bas de cette page le fichier "sendmail.exe" ainsi que les sources de l'application. Vous êtes libres de faire tout ce que vous voulez avec cette application, je la laisse tomber dans l'abîme public.

La syntaxe de la commande Sendmail :

C:\> sendmail La syntaxe de la commande est la suivante : SENDMAIL -file [Fichier de configuration] -server [Serveur SMTP] -port [Port du serveur SMTP (25)] -username [Utilisateur] -password [Mot de passe] -ssl [Utilisation de SSL (true ou false)] -from [Expediteur] -to [* Destinataire(s)] -cc [* Copie(s)] -bcc [* Copie(s) carbone(s)] -subject [** Sujet du mail] -message [** Contenu du mail] -attachment [** Pièces(s) jointe(s)] * Plusieurs valeurs possible séparées par ';' ** Les variables suivantes sont accessibles : $YYYY | $YY => Année, $MM => Mois, $DD => Jour $HH => Heure, $MI => Minute, $SS => Seconde Power by Another, http://another-blog.net

Quelques explications supplémentaires :

L'option -server accepte l'adresse IP ou le nom du serveur SMTP, vous pouvez également spécifier le port SMTP en utilisant la syntaxe suivante : mon_serveur_smtp:mon_port

L'option -port vous permet également de spécifier le port d'envoi

L'option -file permet de spécifier un fichier de configuration. Ce dernier doit contenir l'ensemble des commandes nécessaires à l'envoi du mail.

Les options -to, -cc, -bcc peuvent contenir un ou plusieurs destinaires séparés par un point-virgule.

Les options -sujet, -message et -attachment peuvent contenir les variables de temps, ces dernières sont automatiquement remplacées par leur correspondances à l'instant 't'.

L'option -attachment peut contenir un ou plusieurs fichiers joints séparés par un point-virgule. Vous n'êtes pas obligé de spécifier le chemin complte d'accès aux fichiers si ces derniers sont dans le répertoire de l'éxecutable.

Les variables :

Les variables sont disponibles pour les champs "subject" et "message" uniquement. Lors de l'envoi du mail, ces dernières sont automatiquement remplacées par leur valeur à l'instance de l'envoi du mail. L'utilité étant biensûr de pouvoir envoyer de mail dont le sujet contient la date et/ou l'heure d'éxpédition.

Exemple d'envoi de mail via le serveur SMTP de GMail :

En utilisant le fichier de configuration suivant :

C:\> more sendmail.txt -server smtp.gmail.com:465 -ssl true -username mon_compte@gmail.com -password mon_mot_de_passe -from mon_compte@gmail.com -to mon_destinataire@hotmail.com -subject Envoi de Mail à $HH:$MI:$SS -message Test d'envoi de mail via Gmail C:\> sendmail -file sendmail.txt

Téléchargement