En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des contenus et services adaptés.
Mentions légales.

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 147914 fois
 

Réactions à cet article

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 ! ;)


Réaction n°50 

par   Minipinpon le 30/06/2010 @ 09:55

Merci de votre soutien.

J'avance peu à peu mais ca ne fonctionne toujorus pas.

j'ai créé un fichier .BAT avec le code suivant :

"c:program filesdipisoftsendmailsendmail.exe"/u:toto@pinpon-solutions.net/t:test/m:"c:test.txt"/f:"c:Documents and SettingstotoMes documentsfichier excel source 2010.xls"/e:toto@pinpon-solutions.net/p:25/s:smtp.orange.fr/l

j'ai une fenêtre MSDOS qui s'ouvre et affiche le code puis se referme environ 6 secondes après. Mais je ne reçois aucun mail sur toto@pinpon-solutions.net. oups Si je ne mets pas les " ", la fenêtre MS dos ne s'ouvre même pas portnawak

j'y comprends rien triste

désolé de vous embêter encore. Merci poru votre aide.

[réponse de damien, le 30/06/2010 à 10h49]   Attention, cette réponse fait référence à une ancienne syntaxe de SendMail

Pas de souci tu ne m'embêtes pas : j'estime qu'il est tout à fait normal d'assurer le SAV des produits que j'ai développé quand même ! :)

Le dysfonctionnement que tu rencontres vient du fait que cette version de SendMail ne reconnait pas l'usage des double-quote pour "délimiter" les paramètres. Pire : leur utilisation fout la merde ! Il y a un bon moment que j'ai modifié ça pour la prochaine version mais elle n'est toujours pas disponible car j'ai commencé d'autres modifs plus importantes mais elles ne sont toujours pas terminées.

Bon, peu importe... Dans ton cas, la syntaxe fonctionnelle est la suivante :

"c:\program files\dipisoft\sendmail\sendmail.exe" /u:toto@pinpon-solutions.net /t:test /m:c:test.txt /f:c:\Documents and Settings\toto\Mes documents\fichier excel source 2010.xls /e:toto@pinpon-solutions.net /p:25 /s:smtp.orange.fr /l

Je sais, ça fait bizarre de mettre de spécifier des noms de dossiers/fichiers contenant des espaces sans utiliser les double-quote mais ça fonctionne. En revanche, il ne faut pas oublier celles qui concernent l'appel à l'exécutable (à cause de l'espace de Program files), sinon c'est au système que ça va déplaire ! A moins que tu n'utilises le nom court Progra~1...

Voilà, n'hésite pas à revenir vers moi si malgré ces explications tu continues à rencontrer des problèmes.


Réaction n°49 

par   Minipinpon le 29/06/2010 @ 15:13

Bonjour,

tout d'abord félicitations pour votre esprit freeware bien rare aujourd'hui.

je me permets de vous soumettr eun problème que je n'arrive pas à résoudre.

Je souhaite automatiser l'envoi quotidien d'un fichier excel.

quand je le fait via la fenêtre, pas de soucis ca marche impeccablement.

Cependant lorsuqe je cherche à le faire ne ligne de commande, il me renvoit à chaque fois une erreur comme quoi l'application sendmail n'est pâs reconnue comme une commande interne ou esterne, un executable ......

j'ai tapé en fenetre MSDOS

sendmail /u:toto /t:test /m:test /f:C:\Documents and Settings\toto\Mes documents\un deux trois 2010.xls /e:toto /p:25 /s:smtp.orange.fr /@tutute.net /r /l

je vais peut ete vous faire rire mais on fait comment ?

mes maigres connaissances en inforamtique ne me permettent pas de trouver seul la solution.

d'avance merci pour votre aide.

[réponse de damien, le 29/06/2010 à 16h03]   Attention, cette réponse fait référence à une ancienne syntaxe de SendMail

L'ouverture de la fenêtre d'invite de commande MSDOS s'est probablement faite dans le dossier de ton profil (c:\document and settings\ton_profil) et donc forcément, l'appel de Sendmail échoue puisque ce dernier est installé dans un dossier qui ne se trouve pas dans le PATH.

Trois solutions :

  • soit tu ajoutes le répertoire d'installation dans la variable d'environnement PATH (clic droit sur le poste de travail, propriétés, onglet "Avancé", bouton "Variables d'environnement", ...)
  • soit tu te places dans le répertoire de Sendmail (cd "c:\program files\dipisoft\sendmail" par exemple) avant de lancer ta ligne de commande
  • soit tu spécifies le chemin complet de Sendmail lorsque tu l'invoques. Donc ta ligne de commande donnerait :
    "c:\program files\dipisoft\sendmail\sendmail.exe" /u:toto /t:test /m:test /f:C:\Documents and Settings\toto\Mes documents\un deux trois 2010.xls /e:toto /p:25 /s:smtp.orange.fr /@tutute.net /r /l

J'espère que ces explications seront suffisantes. Je ne peux pas faire plus, je suis au boulot là...


Réaction n°48 

par   Patrick le 25/02/2010 @ 17:33

j'ai une erreur, on ne peut pas mettre d'authentification d'envoi

Patrick

[réponse de damien, le 25/02/2010 à 20h35]

Oui effectivement, comme je l'ai déjà écrit en réponse à plusieurs réactions : la version actuelle de SendMail ne gère pas l'authentification. Quand j'aurais trouvé le temps d'achever la prochaine version, on pourra y spécifier un login/password nécessaire pour se connecter à certains serveurs SMTP.

Elle offrira en outre plusieurs réglages, notamment sur le format de message (text/html), le type d'encodage des caractères (charset), etc...

Mais bon, faut encore être patient. pas ma faute


Réaction n°47 

par   Patrick le 25/02/2010 @ 17:23

Bonjour

S'il les personnes qui ont utilisé sendmail avec MSACCESS pouvez me joindre un exemple ou un bout de code, je serais vivement interréssé

Patrick

[réponse de damien, le 25/02/2010 à 20h29]

Qu'est-ce que tu veux savoir au juste ?


Réaction n°46 

par   bena le 06/02/2010 @ 19:06

Bonjour, bravo pour cette appli légère et simple.

J'aurais besoin d'un  renseignement, où et comment peut-on récupérer les erreurs d'envois ?

J'aimerais envoyer un mail automatiquement avec SendMail au démarrage de mon pc mais tant que la connection internet n'est pas établie c'est unitile. Donc j'aimerais tester l'erreur retourner pour renvoyer le mail jusqu'à ce qu'il soit réellement expédié.

Il existe peut-être une autre méthode moins sauvage.

Merci d'avance. 
 

[réponse de damien, le 06/02/2010 à 20h35]

L'appli ne permet n'est pas prévue pour "boucler" tant que le message n'est pas parti. Tu vas donc effectivement devoir faire cette boucle toi-même. Je pense que dans ton cas le plus simple est de tout simplement récupérer le résultat du traitement via la variable ERRORLEVEL.

Valeurs retournées :

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)

Ou sinon tu peux utiliser l'option /l (L minuscule) pour journaliser les envois/erreurs et analyser le fichier .log, mais là c'est un peu plus corsé...

Ça répond à ta question ?


Réaction n°45 

par   fchevali le 23/09/2009 @ 14:02

Bonjour

Merci pour cet outil très bien fait, simple et gratuit (que demande le peuple!)

J'ai néanmoins une question sur le fonctionnement:

en ligne de commande, y'a t-il mode silencieux? Lorsque je j'envoie le mail il m'affiche toujours une fenêtre Type Warning avec "le message... à été envoyé etc..".

Comment se passer de cette fenêtre poluante?

Mon utilisation: avertir l'administrateur (moi) lorsqu'un service bien particulier tombe (possibilité Windows d'envoyer une ligne de commande lors qu'un service tombe de façon inexpliqué)

[réponse de damien, le 23/09/2009 à 14h57]

Il suffit d'ajouter le paramètre /l (L minuscule), comme c'est spécifié dans la fenêtre "A propos de" et en réponse à plusieurs réactions à cet article. langue