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

Réactions à cet article

Réaction n°150 

par Fadieze93250 le 11/05/2020 @ 14:09

Bonjour,

je suis en train de tester la version graphique avec mes identifiants Free.fr et j'ai toujours une erreur qui remonte ?

L'envoi du message s'est terminé anormalement (status : Error 13975: Le message n'a pas pu être envoyé vers le serveur SMTP. Le code erreur de transport était 0x80040217. La réponse du serveur était not available) ...

Paramètres :

Serveur ; smtp.free.fr

SSL : Oui Port : 465

Auth : Login

Username : patrick.chauatrd

Password : *************

Un utilisateur Free a t'il réussi ?

Faut t'il  ajouter la dll OSSMTP.dll où OSSMTP_Plus.dll ?

Merçi de votre retour.

Cordialement

Patrick

[réponse de damien, le 11/05/2020 à 15h02]

Si tu utilises la version "installeur" tu n'as rien à installer de plus.

Si tu utilises la version "portable", dans l'archive il y a un fichier "lisez-moi.txt" à consulter et un fichier .bat à utiliser pour copier les composants nécessaires dans les dossiers du système et déclarer ceux qui ont besoin de l'être.

Personnellement j'utilise mon adresse Free sans aucune erreur comme tu peux le voir dans la capture envoyée par mail.

La faute de saisie dans le Username est juste une faute de frappe faite en déposant ce message ou elle est également présente dans ta configuration ? Cela pourrait expliquer une erreur...

[réponse complémentaire de damien, le 11/05/2020 à 20h11]

Dans l'interface de gestion de ton compte Free, as-tu pensé à activer l'utilisation du SMTP en mode authentifié ?

Et sinon, as-tu testé si ça fonctionnait avec un autre SMTP ? Celui de ton fournisseur d'accès notamment. Histoire d'écarter un problème avec ton compte Free...


Réaction n°149 

par Patrice le 10/12/2019 @ 13:11

Bonjour,

Je teste votre logiciel SendMail en ligne de commande qui fonctionne quand j'envoi qu'un seul fichier joint.

Si je veux envoyer 2 voir 3 fichiers joints, rien ne se passe.

Je pense à une erreur de ma part dans la rédaction de l'argument "/pj:"

/pj:D:\Commun\SEPCOS.xlsm,D:\Commun\LVDS.xls,D:\Commun\SAV.xlsm 

P.S. comment construit on un fichier "NomConfigurationSMTP" pour le passer en argument (/conf:NomConfigurationSMTP)

Merci.

[réponse de damien, le 10/12/2019 à 13h43]

La syntaxe semble pourtant correcte pour l'ajout des pièces-jointes. Tu es sûr que tu n'as pas fait une erreur dans le nom ou le chemin des fichiers ?

A noter que ça fonctionne avec ou sans espaces après les virgules et que le "double-quotage" est facultatif. Si tu l'utilises, il faut double-quoter l'intégralité du contenu du paramètre /pj ; ne pas double-quoter les fichiers séparément. Je viens de refaire quelques tests et je reçois bien les mails avec les fichiers inclus.

Exemples :

  • sendmail.exe /a:"moi@dipisoft.com" /o:"Test Sendmail" /ch:"Veuillez trouver..." /pj:D:\temp\francais.lng,D:\temp\english.lng,D:\temp\italiano.lng /l => OK
  • sendmail.exe /a:"moi@dipisoft.com" /o:"Test Sendmail" /ch:"Veuillez trouver..." /pj:D:\temp\francais.lng, D:\temp\english.lng, D:\temp\italiano.lng /l => OK
  • sendmail.exe /a:"moi@dipisoft.com" /o:"Test Sendmail" /ch:"Veuillez trouver..." /pj:"D:\temp\francais.lng, D:\temp\english.lng, D:\temp\italiano.lng" /l => OK
  • sendmail.exe /a:"moi@dipisoft.com" /o:"Test Sendmail" /ch:"Veuillez trouver..." /pj:"D:\temp\francais.lng", "D:\temp\english.lng", "D:\temp\italiano.lng" /l => KO

La construction d'une configuration SMTP se fait exclusivement via l'interface graphique.


Réaction n°148 

par JMB le 27/11/2019 @ 02:37

Bonjour Damien

Merci pour votre logiciel.

Vraiment une très grande contribution.

J'ai trouver votre logiciel en cherchant un moyen de recevoir un courriel lorsque un de mes ordinateur pourrait être mis sous tentions.

C'était pas un question de voie ou de mort mais un petit défie.

Votre programme fonctionne bien tout seul mais en utilisant les tache planifier cela fonctionne pas.

Il ya une astuce qui me manque.

La tache planifier que j'ai fait fonctionne seulement si je l'active manuellement.

J'ai tenté plusieurs approche mais j'ai pas trouvée.

Voici le fichier bat que j'ai fait qui fonctionne si je l'active manuellement mais pas dans le planificateur de tache.

Je suis pas programmeur ou autre qualificatif du genre

Merci !

======

@echo off
cd C:\Program Files (x86)\Dipisoft\SendMail
SendMail.exe /conf:"jmb" /a:"jmb@gmail.com" /o:"Demarage - Brocolie" /ct:"Votre ordinateur a démarré à l'instant" /en:"utf-8" /l
exit

=====

[réponse de damien, le 27/11/2019 à 17h09]

Le truc avec les tâches planifiées, c'est que si tu ne spécifies pas un compte spécifique pour leur exécution, le contexte dans lequel la commande sera lancée sera différent de celui d'exécution habituelle (quand elle est lancée manuellement par l'utilisateur).

Avec la version "portable" ça pose moins de problème car le fichier de configuration (sendmail.ini) se trouve dans le dossier de l'application.

Avec la version "installée", le fichier de configuration est placé dans %appdata%\Dipisoft\SendMail. Donc différent pour chaque utilisateur. Si ta tâche est exécutée sous le compte Système, l'appli ne "verra" pas son fichier de configuration.

Donc soit tu dois configurer la tâche pour qu'elle s'exécute sous ton profil, soit tu utilises l'appli en version portable.

Est-ce que c'est suffisamment clair ?

Je me permet de poster ton message et ma réponse dans les réactions à l'article sur SendMail de mon site. L'information peut servir à d'autres utilisateurs.


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