SendMail // Envoi de mails doté d'un mode 'scriptable'

sendmail01.pngsendmail02.png
français anglais allemand   (pour contribuer, rendez-vous sur la page des fichiers de langues)

Avec un tel nom, il n'est pas bien difficile d'imaginer la fonction principale de SendMail... Mais cet outil est bien plus qu'un simple logiciel d'envoi de mails !

Une des principales caractéristiques de SendMail est qu'il peut être utilisé soit en mode interface graphique, soit en mode script. Je suppose qu'il n'est pas utile que je m'étende sur le premier, le second nécessite en revanche quelques explications : SendMail est "scriptable", ce qui signifie que l'on peut aussi l'utiliser en mode "ligne de commande", grâce à une syntaxe complexe.

Il est par conséquent possible d'utiliser SendMail en complément d'autres outils qui permettent d'exécuter des traitements externes. C'est le cas de LanAlertCenter (que vous pouvez aussi trouver sur ce site) mais aussi de nombreux outils du commerce, dans divers domaines.

Codes erreurs (ErrorLevel) retournés lors de l'utilisation en mode ligne de commande :

  • 0 : message envoyé avec succès
  • 1 : erreur dans les paramètres passés par l'utilisateur
  • 2 : erreur d'accès à l'ActiveDirectory
  • 3 : erreur de destinataire (groupes vides)
  • 4 : erreur de pièce jointe (introuvable)
  • 5 : erreur d'envoi du message (OSSMTP)

Une autre particularité de cet outil est qu'il permet d'envoyer des mails soit à des destinataires désignés manuellement, soit aux membres de groupes globaux de l'ActiveDirectory. Cette dernière possibilité est pratique puisqu'elle peut ainsi éviter d'avoir recours à la création de listes de distribution.

Cet outil n'aurait pas été complet s'il n'avait pas permis à l'utilisateur de pouvoir joindre des fichiers, cette fonctionnalité est par conséquent présente !

Enfin, je tiens à préciser que SendMail utilise le composant OSSMTP développé par OstroSoft que je remercie vivement.

ATTENTIONcet outil ne doit pas être utilisé pour effectuer du spam !

Télécharger Télécharger ce logiciel (version installeur)
Télécharger Télécharger ce logiciel (version portable ZIP) Note importante aux utilisateurs des versions portables

Date de création : 21/02/2005 @ 14:26
Dernière modification : 06/07/2020 @ 18:32
Catégorie : - Aide à l'administration
Page lue 171262 fois
 

Réactions à cet article

Réaction n°60 

par jeantous le 18/11/2010 @ 14:40

Bonjour, je suis un peu débutant, donc comment fait-t-ont pour configurer ce logiciel ? sendmail, est-ce-que je suis obligé de passer par le smtp de mon fournisseur ? car au dela de 100 emails par jours, je suis bloqué par le FAI.

Merci de votre réponse.

[réponse de damien, le 18/11/2010 à 19h23]

Comment faire ? Tout simplement en choisissant "Configuration" dans le menu "Options" (ou en pressant la touche F3).

Tu devras au minimum renseigner l'adresse de ton serveur SMTP (utiliser celui de ton FAI n'est pas une obligation) et le port, 25 en principe. Attention quand même à propos du serveur SMTP : certains FAI n'autorisent pas l'utilisation d'autres SMTP que le leur. Il me semble qu'il y a un réglage à faire quand on est chez Free justement...

En ce qui concerne les autres réglages :

  • le suffixe est utilisé dans le cas où tu as la flemme de spécifier des adresses complètes dans la liste des destinataires : si tu mets, "toto" tout court par exemple, l'appli détectera qu'il n'y a pas de @xxx.yyy et ajoutera alors le suffixe que tu auras défini.
  • nombre de destinataires par envoi : quand tu adresses un mail à plusieurs personnes, cette valeur sera utilisée pour l'envoyer en plusieurs lots selon la taille de la liste. Si tu mets 20 et que tu envoies un mail à 22 personnes, SendMail enverra en fait 2 mails : un aux 20 premiers destinataires et le second aux 2 dernières. Contrairement à ce que dit le message d'erreur quand tu laisses ce champ vide, la valeur doit être supérieure ou égale à 1 et non strictement supérieure.
  • enfin, tu peux définir des destinataires par défaut si tu le souhaites (voir même des groupes si tu utilises l'appli dans un contexte où il y a un annuaire ActiveDirectory).

Ça répond à ta question ?


Réaction n°59 

par Fabnou le 05/10/2010 @ 06:28

Bonjour j'utilise SendMail (vraiment super pour l'exécution en ligne de commande).

par contre quand j'envoi un mail, l'heure de l'envoi n'est pas la bonne:

dans mon pays (Nouvelle-Calédonie) nous sommes en GMT+11 et le serveur sur lequel SendMail est installé est configuré comme tel, mais les mails envoyés sont en GMT+0.

y a t-il quelques choses a faire pour résoudre ce problème?

Cordialement.

[réponse de damien, le 04/10/2010 à 07h03]

Pour être honnête, je t'avouerais que je ne m'étais jamais penché sur le sujet de la date/heure d'envoi. Je viens donc de faire quelques tests et contrairement à ce que je pensais au premier abord, à savoir que l'horodatage du message devait être assuré par le serveur SMTP, il n'en est rien : les mails sont horodatés par le PC depuis lequel ils sont émis. Je trouve ça surprenant car du coup on peut "tricher" mais bon, c'est comme ça...

Donc une question simple se pose : ton PC est-il bien à l'heure ?! sourire


Réaction n°58 

par malko06 le 27/09/2010 @ 16:57

Bonjour,

Existe-t-il ou va-t-il exister une fonction permettant l'envoi d'une confirmation de lecture (accusé de réception) ?

Sous Unix je crois que c'est avec -Ndsn mais il est déjà utilisé (ahhh la casse sous windows...)

Merci

[réponse de damien, le 28/09/2010 à 07h03]

La version actuelle ne permet pas de configurer la demande d'accuser de réception. Mais étant donné que le composant que j'utilise permet cette option, cela signifie donc que l'ajout de la fonctionnalité à la prochaine version de SendMail est tout à fait envisageable.

Je me l'ajoute à la TODO list. cligne


Réaction n°57 

par Lsda26 le 22/07/2010 @ 16:36

Pas de problème! Je vais chercher de mon coté.

Par contre est-ce que sendmail.exe+MV50xxxx.dll (placés dans le même répertoire) peut fonctionner tous seul ou bien est-on obligé de l'installer.

Car sur mon poste où j'ai installé sendmail, mon batch fonctionne bien et sur le poste ou le batch devra tourner et ou je n'ai pas fait l'installation (juste un répertoire avec sendmail.exe+.dll+le batch, il ne fonctionne pas.

[réponse de damien, le 23/07/2010 à 06h46]

Pour que l'appli fonctionne sans l'avoir installée, il te faut les fichiers suivants :

  • sendmail.exe
  • msvbvm50.dll
  • vb5fr.dll
  • mscomctl.ocx : à déclarer par un regsvr32 mscomctl.ocx
  • ossmtp.dll : à déclarer par un regsvr32 ossmtp.dll

Tu peux au choix laisser les DLL/OCX dans le dossier de l'exécutable ou les placer dans System32 (ou SysWOW64 sous Vista/Win7 en 64 bits). Personnellement, je préfère les mettre dans System32 mais bon, chacun fait comme il veut...


Réaction n°56 

par Lsda26 le 22/07/2010 @ 15:17

Ca y est c'est nickel, ca fonctionne bien!
J'avais oublier de copier les 2 dernières lignes:
:ajoutefic
 set listefichiers=%listefichiers%,%fic%

Évidemment ça fonctionne mieux avec! sourire
J'utilisais la commande suivant pour copier les fichiers à envoyer dans un autre répertoire:
for /f "tokens=1-3 delims=/ " %%a in ('date/t') do set MMDDYY=%%b-%%a-%%c
xcopy %source%*.ba2 %dest% /D:%MMDDYY% /y

Tout fonctionne nickel, mais est-ce possible d'extraire la liste des fichiers  à mettre en pièce jointe d'un répertoire contenant d'autre fichier, de dates différentes, en utilisant la commande dir?
du genre dir /T:W *.ba2 | find %date%

Ca pourrait eviter de copier dans un autre répertoire les fichiers "du jour" à envoyer

[réponse de damien, le 22/07/2010 à 16h18]

Oui, c'est très certainement possible mais bon, je suis au taf là et je n'ai pas trop le temps de faire des recherches...


Réaction n°55 

par Lsda26 le 22/07/2010 @ 14:39

merci pour ton aide!

Apparemment, quand j'execute ton script, il me dit:
"Le système ne peut pas trouver le nom de fichier de commandes -ajoutefic"

j'étais partis sur un script bien tordu qui fonctionne pas evidement!!!

[réponse de damien, le 22/07/2010 à 14h47]

Je viens de faire un copier/coller du code dans un fichier .bat et ça fonctionne nickel sous Windows XP SP3... pas ma faute

T'es sûr que tu n'as pas foiré la manip ?

[réponse de damien, le 22/07/2010 à 14h54]

Idem sous Windows7, ça fonctionne sans erreur.


Réaction n°54 

par Lsda26 le 22/07/2010 @ 11:18

de même, est-il possible de ne pas afficher le message de confirmation d'envoi du mail quand on passe par les lignes de commandes.

[réponse de damien, le 22/07/2010 à 14h15]

Voir réponse à ton autre question ! ;)


Réaction n°53 

par Lsda26 le 22/07/2010 @ 11:16

coucou

Un grand merci pour tout ces soft!!!

Je voudrais savoir si en passant par ligne de commande, il est possible de placer en pièces jointes tout les fichiers qui sont dans un répertoire précis. Car je ne connait pas le nom des fichiers qui sont générés tout les jours.

[réponse de damien, le 22/07/2010 à 14h14]   Attention, cette réponse fait référence à une ancienne syntaxe de SendMail

La version 1.8 ne le permet pas nativement (donc je viens d'ajouter cette fonctionnalité pour la prochaine version) mais tu peux "aisément" arriver à tes fins en gérant ça depuis ton script appelant.

Je te propose l'exemple suivant :

Fichier SendMail.bat
 set sujet=test envoi plusieurs fichiers
 set exp=moi@dipisoft.com
 set dest=toi@dipisoft.com
 set corps=corps.txt
 set fichiers=c:temp*.log
 
 for %%i in (%fichiers%) do (
    set fic=%%i
    call :ajoutefic
 )

 set listefichiers=%listefichiers:~1%

 sendmail.exe /m:%corps% /u:%dest% /t:%sujet% /e:%exp% /f:%listefichiers% /l

 echo %errorlevel%

 pause

 exit

 :ajoutefic
 set listefichiers=%listefichiers%,%fic%

Comme tu peux le voir, c'est le script qui va construire la liste des fichiers (dans la boucle for %%i in...) qui sera ensuite transmise en paramètre à SendMail. A noter la présence du /l (L minuscule) qui permet d'inhiber l'affichage du message en fin d'opération, mais le dirige dans le fichier sendmail.log... Ça répond donc à ta seconde question.

Après tes tests, tu pourras supprimer les lignes echo %errorlevel% et pause qui ne te serviront plus.

N'hésite pas à me recontacter si tu as besoin de précisions sur le fonctionnement de ce script.


Réaction n°52 

par Thierry le 07/07/2010 @ 15:16

Bonjour,

Tout d'abord, bravo pour le développement FreeWare : c'est très souvent une aide très précieuse pour de nombreux béotiens.

Je suis à la recherche d'un outil d'envoi de mails, avec certaines fonctionnalités, et je voudrais savoir si SendMail les intègre.

Ce que je souhaite, c'est faire de l'envoi de mails en une seule fois à x personnes, avec une ou plusieurs pièces jointes spécifiques à chaque personne.

Par exemple, j'ai un répertoire qui contient les fichiers xx1.pdf, xx2.pdf, yy1.pdf et yy2.pdf, et je souhaite envoyer automatiquement un mail à Monsieur xx avec les pièces jointes xx1.pdf et xx2.pdf, ainsi qu'un mail à Madame yy avec les pièces jointes yy1.pdf et yy2.pdf.

Est-ce possible avec SendMail, soit en mode graphique, soit en ligne de commande ?

Cordialement

[réponse de damien, le 07/07/2010 à 18h40]

Mon soft te permettra d'envoyer des mails à x personnes, y compris avec des pièces jointes, mais pour un même envoi ce sera le même corps de message et les mêmes pièces jointes pour chacun des destinataires.

Maintenant tu peux très bien l'utiliser conjointement à un petit développement spécifique qui lancerait autant de fois SendMail (en ligne de commande, avec les paramètres qui vont bien) que tu as de destinataires et qui serait en charge de personnaliser les messages et les pièces jointes. Ça peut se faire assez simplement depuis Excel ou Calc par exemple (je dis ça dans le cas où tes contacts seraient dans un tableau d'un de ces formats), ou à l'aide de n'importe quel outil de scripting...

A moins que tu puisses trouver ton bonheur avec un outil plus orienté mailing de masse mais je ne suis pas sûr que tu trouves ça gratuitement. pas ma faute


Réaction n°51 

par Minipinpon le 30/06/2010 @ 10:58

cool comme disent les djeuns d'aujourd'hui "trop d'la balle" sourire

décidément votre site devient vraiment une référence pour moi.

Merci beaucoup. Je vais utlérieurement m'attarder sur vos autres softs, notamment WakeOnLan qui pourrait bien m'apporter des oslutions à certains de mes soucis au bureau comme à la maison cligne

encore un grand merci et bonne continuation

[réponse de damien, le 30/03/2010 à 11h07]

Cool... heureux que ça fonctionne à présent.

Bonne continuation à toi aussi et peut-être à bientôt concernant d'autres outils ! ;)