sendMail vbs
Voici un petit script VBS permettant d'envoyer un mail en passant par un serveur SMTP ne nécessitant pas d'authentification.
Oui, en VBscript [1].
Il peut être appelé comme ceci depuis un script .bat:
c:\progra~1\sendmail\sendmail.vbs /smtpserver:172.1.1.9 /smtpfrom:from@domaine.com /smtpto:to@domaine.com /subject:"Hey hey" /body:"oh oh"
à condition de l'avoir enregistré dans c:\progra~1\sendmail\ Of course
Option Explicit
Dim args
Dim smtpserver 'Adresse du serveur de messagerie / relais smtp 
Dim smtpto, smtpfrom, subject, body, helpusage
helpusage = "sendmail.vbs /smtpserver:172.18.0.1.4 /smtpto:destinataire@mail.com /smtpfrom:expediteur@mail.com /subject:""sujet du message"" /body:""message .. blah blah"""
Set args = Wscript.Arguments.Named
if args.Exists("smtpserver") Then 
	smtpserver = args.Item("smtpserver")
Else
	WScript.Echo "parametre manquant smtpserver usage: sendmail.vbs /smtpserver:172.18.0.1.4 "
	WScript.Quit 1
End if
if args.Exists("smtpto") Then 
	smtpto = args.Item("smtpto")
Else
	WScript.Echo "parametre manquant smtpto usage: " & helpusage
	WScript.Quit 1
End if
if args.Exists("smtpfrom") Then 
	smtpfrom = args.Item("smtpfrom")
Else
	WScript.Echo "parametre manquant smtpfrom usage: " & helpusage
	WScript.Quit 1
End if
if args.Exists("subject") Then 
	subject = args.Item("subject")
Else
	WScript.Echo "parametre manquant subject usage: " & helpusage
	WScript.Quit 1
End if
if args.Exists("body") Then 
	body = args.Item("body")
Else
	WScript.Echo "parametre manquant body usage: " & helpusage
	WScript.Quit 1
End if
Call EnvoyerEmail(smtpserver,smtpto, smtpfrom,subject,body)
Public Function EnvoyerEmail(varSMTPRelay, varDestEmail, varSenderMail, varSujetMail, varMessageMail)
	Dim objMessage
	Set objMessage = CreateObject("CDO.Message")
	objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
	objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = varSMTPRelay
	objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
	objMessage.Configuration.Fields.Update
	objMessage.Subject = varSujetMail
	objMessage.Sender = varSenderMail
	objMessage.From = varSenderMail
	objMessage.To = varDestEmail
	objMessage.TextBody = varMessageMail
	objMessage.Send
	Set objMessage = Nothing
End Function
Note
[1] En 2018, je me sens obligé de justifier l'usage de VBS. Sur un serveur Windows qui fait ce qu'il doit faire. Je ne veux pas agrandir sa surface d'exposition en ajoutant un interpréteur ou un programme tiers. On dispose donc nativement en langages de scripting: batch ( qui ne permet pas d'envoyer d'email) VBScript et Powershell. Ce dernier est contraint à quelques avertissements de sécurité qu'il faut Bypasser. Il ne reste donc que VBS. Voila, ce n'est pas parce que je suis nul et ne sait faire que du VBS, c'est juste le choix le plus cohérent à mon avis. De la même façon, récemment j'ai scripté des notifications sur un serveur de GED, j'ai choisi Python simplement parce qu'il était déjà présent sur le serveur (dev trop spécifique pour faire l'objet d'un billet de blog)
