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

Réactions à cet article

Réaction n°147 

par MDLE46 le 16/11/2019 @ 21:36

Bonjour,

Une petite suggestion, création du paramètre :

/of:FichierObjetMessage

/of:"c:\temp\objet.txt"

Souvent, pour que l'info (nombre ou ... ) soit lu sans ouvrir le mail, une variable est nécessaire dans l'objet. Pour éviter cette variable dans SendMail, l'utilisation d'un fichier texte est nécessaire.

Et c'est la macro qui enverra le mail qui paramètrera ce fichier texte.

Cordialement.

MDLE46

[réponse de damien, le 16/11/2019 à 22h31]

Merci pour ta suggestion qui me semble avoir son utilité.

Je creuserai ça prochainement, mais pour l'heure je bosse en parallèle sur la ré-écriture de LanAlertCenter et sur la prochaine version de Dipiscan.


Réaction n°146 

par bpapon60 le 04/10/2019 @ 10:34

Bonjour,

Autant pour moi, j'étais persuadé d'avoir valider l'autorisation d'applications moins sécurisées sur le compte gmail. C'est ok.

1000 chapeaux : pour le boulot sur les programmes, pour la rapidité et la précision de la réponses.

Une fois qu'on y a goûté on en veut plus (sauf si cela existe déjà ?):   

- un sendmail.log pour les envois en mode fenêtre.

- un petit module pour afficher ce log pour suivre la bonne émission

- un fichier .ini ou bien dans sendmail.ini avec tous les paramètres d'un envoi pour 'simplifier' la ligne de commande, on mettrait juste sendmail prmemail.ini avec les switchs dans le prmemail.ini.

- en mixant ces 3 points on pourrait mémoriser tous les envois et du coup pouvoir renvoyer ceux en erreur.  

- si vous avez un programme sous forme de service qui surveille l'arrivée d'un fichier dans un répertoire et qui peut lancer un batch je suis preneur.

- cela permettrait de faire un serveur d'envoi de mail. Vous mettez une pièce à joindre genre .pdf, un fichier prmemail.ini dans un répertoire surveillé et hop sendmail envoie l'email avec les paramètres de sendmail.ini, ou un autre nom unique pour garder l'historique.

- [hors-sujet] vous développez avec quels outils/langage ?

Encore un grand merci.

[réponse de damien, le 04/10/2019 à 10h53]

Ça fait pas mal de demandes d'évolutions tout ça...

J'y réfléchirai à l'occasion mais en ce moment je ne code pas trop : j'ai eu une opération au niveau de la colonne vertébrale fin août et je ne peux toujours pas rester assis très longtemps. Et coder debout ou allongé c'est pas terrible alors je fais une pause...

S'agissant de ta dernière question, mes dernières applis sont en C#, les plus anciennes en VisualBasic (VB5).


Réaction n°145 

par bpapon60 le 03/10/2019 @ 21:40

Bonjour, toujours pas de possibilité d'utiliser le smtp de gmail à cause de SSL/TLS ?

[réponse de damien, le 04/10/2019 à 09h36]

Non, ça fait un petit moment déjà que ça fonctionne très bien avec Gmail. Il suffit d'utiliser cette configuration :

Serveur : smtp.gmail.com
SSL : oui
Port : 465
Authentification : login
Username : [une adresse gmail valide]
Password : [le mot de passe correspondant]

A noter que lors de l'envoi, le SMTP de Google remplacera l'adresse de l'expéditeur (mais celle-ci sera copiée dans le champ "adresse de réponse") par celle spécifiée dans le champ Username de la configuration.

Petit complément d'information : comme c'est écrit dans ma réponse à la réaction n°131, il faut toutefois qu'une des options de sécurité du compte Gmail ait été désactivée pour autoriser la connexion des "Applications moins sécurisées".

Pour ce faire :

  • depuis un navigateur, ouvrir la boite Gmail
  • aller dans les paramètres, onglet "Comptes et importation"
  • dans la rubrique "Modifier les paramètres du compte" (la première), cliquer sur le lien "Autres paramètres de votre compte Google", un nouvel onglet "Compte Google" devrait s'ouvrir
  • aller dans la rubrique "Sécurité"
  • presque en bas de la page, dans le cadre "Accès moins sécurisé des applications", cliquer sur "Activer l'accès (déconseillé)"
  • une nouvelle page s'affiche, cocher l'option "Paramètre "Autoriser les applications moins sécurisées" désactivé"


Réaction n°144 

par pk1157 le 05/09/2019 @ 15:23

Re Bonjour,

J'ai trouvé, il me fallait recopier le fichier sendmail.ini qui figure dans ma session (C:\users\Appdata\roaming\Dipisoft\Sendmail\Sendmail.ini dans chaque utilisateurs susceptible d'utiliser le batch.

Ce fichier doit sans doute être créé lors de la première utilisation (en mode graphique) et du paramétrage qui en découle (SMTP, mot de passe, etc.)

Bravo, en tout cas, pour cet utilitaire magique qui me rappelle mon Linux ...

PP

[réponse de damien, le 05/09/2019 à 21h05]

Cool, tant mieux que tu sois parvenu à trouver l'explication par toi-même. Et rapidement en plus.

En ce moment j'ai un peu l'esprit brouillé (je suis sous traitement anti-douleurs suite à une opération la semaine dernière), la solution ne me serait pas forcément apparue aussi vite.


Réaction n°143 

par pk1157 le 05/09/2019 @ 15:05

Bonjour,

J'utilse SendMail v3.2.1 dans un fichier .bat (donc la même instruction) pour envoyer un mèl identique à partir de deux sessions TSE sur le même serveur.

L'une fonctionne parafaitement (merci Damien !), mais l'aute échoue systématiquement avec ce message dans le log :

L'envoi du/des messages s'est terminé anormalement :  - Error 13977: Le serveur a rejeté une ou plusieurs adresses de destinataires. La réponse du serveur était : 550 5.1.1 Recipient not found. 

Bizarre, l'adresse du destinataire est parfaitement valide et identique dans les deux cas puisque inscrite dans le batch qui lance SendMail.

Serait-ce un problème de page de code/caractères spéciaux (l'underscore) ? Une idée ?

Merci d'avance,

PP

[réponse de damien, le 05/09/2019 à 21h02]

Tu as trouvé par toi-même et partagé l'explication dans la réaction suivante et je t'en remercie. ouais


Réaction n°142 

par fe le 07/07/2019 @ 10:43

Bonjour Monsieur,

Merci beaucoup pour votre contribution à la communauté.

Je viens d'installer Sendmail V3.2.1qui fonctionne parfaitement, mais je souhaiterais l'utiliser en version "scriptable", grâce, comme vous dites : à une syntaxe complexe.

Quelle est cette syntaxe ? Où est-elle décrite ?

Pouvez-vous nous en donner quelques exemples ?

Cordialement

[réponse de damien, le 07/07/2019 à 10h46]

La syntaxe est décrite, accompagnée de quelques exemples, dans la fenêtre "A propos de" de l'application.

Tu trouveras des exemples complémentaires dans certaines réactions des autres utilisateurs et mes réponses.


Réaction n°141 

par pk1157 le 12/06/2019 @ 19:07

Bonjour,

Sur Windows Server 2008R2, j'obtiens le même résultat :

Le test de la configuration echoue avec le message concernant le timeout, alors que l'envoi par l'interface graphique fonctionnne très bien.

PK1157

[réponse de damien, le 12/06/2019 à 19h50]

Formulé de cette façon m'a permis de comprendre que l'anomalie se produisait dans la fenêtre de paramétrage d'une configuration SMTP, lorsque l'on clique sur le bouton "Tester...". C'est tout bête mais cette incompréhension m'a fait perdre pas mal de temps à chercher dans d'autres directions.

Du coup, là j'ai rapidement reproduit le problème que j'ai corrigé dans la foulée. La v3.2.1 est dispo. cligne


Réaction n°140 

par ironxerus le 05/06/2019 @ 18:44

je n'ai mis qu'1 seul destinataire au niveau de ma commande dans le bat 

dans mon 1er test je m'ecrivais à moi meme + une boite SFR  pour voir, j'ai enlever le SFR qui me servait de test et cela fonctionne 

[réponse de damien, le 05/06/2019 à 19h27]

Je ne vois pas en quoi ne mettre qu'un seul destinataire au lieu de deux pourrait expliquer la disparition du message d'erreur.

Il doit y avoir autre chose ou alors tu ne m'as pas tout dit. déconcerté


Réaction n°139 

par ironxerus le 05/06/2019 @ 18:15

Ok avec un peu de recherche ca fonctionne , je te remercie d'avance 

si tu ne veux pas poluer le fil de la discussion tu peux effacer nos échanges

encore merci 

[réponse de damien, le 05/06/2019 à 18h23]

Ah ? Et tu peux m'en dire plus ? Le problème venait d'où ? Ça pourra peut-être servir à d'autres utilisateurs...


Réaction n°138 

par ironxerus le 05/06/2019 @ 18:06

Excuse je vais essayé d'être plus precis

Voici la situation 

en allant dans l'onglet configuration et que  je clique sur le bouton tester , j'ai le msg timeout , par contre si j'envoie le mail sans tester ca marche YES !!! 

Donc en mode interactif ca fonctionne , j'avance donc en tentant maintenant le .bat 

sendmail /conf:"outlook_xxx" /a:"prenom.nom@ste.fr" /o:"Test envoi avec piece jointe" /ct:"Voir fichier joint" /pj:C:\Users\user1\Desktop\ASS\Images\5-06-2019_15-58-58.jpg /iep /l

et la j'ai le message :impossibilité d'executer avec une imcompatibilité 64 bits d'ou mon 1er message 

en espérant étre clair

[réponse de damien, le 05/06/2019 à 18h21]

C'est sûr qu'avec ces infos là dès le début, on aurait gagné du temps !

Bon, je viens de faire un test sur un W10 64 bits et tout se passe normalement. Je ne sais pas d'où il sort ce message d'erreur, je n'ai jamais rencontré ça avec cette appli.

T'es sûr que ça vient de SendMail ? Tu peux me faire une copie d'écran du message stp ?