web-dev-qa-db-fra.com

VBScript pour envoyer des e-mails sans exécuter Outlook

J'ai écrit un test automatisé qui s'exécute chaque nuit, et je voudrais envoyer les résultats par e-mail chaque nuit une fois le test terminé.

Pour ce faire, j'ai essayé de mettre ce qui suit à la fin de mon fichier de commandes:

Set MyApp = CreateObject("Outlook.Application")
Set MyItem = MyApp.CreateItem(0)
With MyItem
    .To = "[email protected]"
    .Subject = "Subject"
    .ReadReceiptRequested = False
    .HTMLBody = "resport"
End With
MyItem.Send

Cependant, cela empêche l'envoi de l'e-mail car mon Outlook n'est pas ouvert, car le test est exécuté en arrière-plan et je n'ai pas accès à l'interface utilisateur.

Existe-t-il de toute façon d'envoyer cet e-mail sans réellement exécuter Outlook sur la machine.

Merci!

15
user856354

Vous pouvez envoyer des e-mails sans Outlook dans VBScript à l'aide de l'objet CDO.Message . Vous aurez besoin de connaître l'adresse de votre serveur SMTP pour utiliser ceci:

Set MyEmail=CreateObject("CDO.Message")

MyEmail.Subject="Subject"
MyEmail.From="[email protected]"
MyEmail.To="[email protected]"
MyEmail.TextBody="Testing one two three."

MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendusing")=2

'SMTP Server
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpserver")="smtp.server.com"

'SMTP Port
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpserverport")=25 

MyEmail.Configuration.Fields.Update
MyEmail.Send

set MyEmail=nothing

Si votre serveur SMTP nécessite un nom d'utilisateur et un mot de passe, collez ces lignes au-dessus du MyEmail.Configuration.Fields.Update ligne:

'SMTP Auth (For Windows Auth set this to 2)
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpauthenticate")=1
'Username
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendusername")="username" 
'Password
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendpassword")="password"

Vous trouverez plus d'informations sur l'utilisation de CDO pour envoyer des e-mails avec VBScript sur le lien ci-dessous: http://www.paulsadowski.com/wsh/cdo.htm

28
michaelx386

Oui. Blat ou tout autre mailer SMTP autonome. Blat est un client SMTP assez complet qui s'exécute à partir de la ligne de commande

Blat est ici

0
MJB