Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoi mail en vbs avec 3 variables via un fichier Excel

5 réponses
Avatar
Itsejoke
Bonjour à tous,

Je voudrais envoyer un mail personnalisé en VBS à une liste de
collaborateurs avec 3 variables :

- Email du destinataire : VAR1
- Login du destinataire : VAR2
- Mot de passe du destinataire : VAR3

Le mieux serait d'être dans un fichier Excel, ou fichier TXT

J'ai déjà la routine pour le mail, reste à faire appel à ces 3 variables :

----------------------------------------------------------------------------------------------
Dim oCDO

Set oCDO = CreateObject("CDO.Message")
With oCdo
With .Configuration.Fields ' Configuration "du compte mail SMTP"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
"smtp.fournisseur.fr"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") =
"25"

.Update
End With
.From = "EmailEmetteur@Domaine.fr"
.to = VAR1
.Subject ="Sujet" & Now
.TextBody ="Votre login : " VAR2 & vbCrlf & "Votre mot de passe : " VAR3
.Send
End With
----------------------------------------------------------------------------------------------

J'ai commencé à chercher sur microsoft scripting mais je ne vois pas...
On a un bien quelque chose en perl mais j'aimerais m'affranchir de
l'installation de perl...

Merci de votre aide.

5 réponses

Avatar
MClaveau (MVP)
Bonjour !

En fait, quel est le problème ? (perso, j'ai échoué à l'exam de
divination).




--
@-salutations

Michel Claveau
Avatar
Gilles LAURENT [MVP]
"Itsejoke" a écrit dans le message de
news:%
| Bonjour à tous,

Bonsoir,

| Je voudrais envoyer un mail personnalisé en VBS à une liste de
| collaborateurs avec 3 variables :
|
| - Email du destinataire : VAR1
| - Login du destinataire : VAR2
| - Mot de passe du destinataire : VAR3
|
| Le mieux serait d'être dans un fichier Excel, ou fichier TXT

Soit le fichier de type texte VARs.txt au format csv dans lequel chaque
champ est séparé par une virgule et contient les informations suivantes
:

Email,Login,Password

Pour extraire les informations disponibles dans ce fichier :

Set oFs=CreateObject ("Scripting.FileSystemObject")
Set oFile=oFs.OpenTextFile ("VARs.txt")
arrVars=Split (oFile.ReadLine, ",")

| J'ai déjà la routine pour le mail, reste à faire appel à ces 3
| variables :

Les informations sont disponibles dans la variable de type tableau
arrVars. Il suffit donc maintenant de remplacer chaque occurence de VARn
par la variable arrVars en utilisant l'index adéquat :
VAR1 = arrVars (0)
VAR2 = arrVars (1)
VAR3 = arrVars (2)

| .to = VAR1

.To=arrVars (0)

| .TextBody ="Votre login : " VAR2 & vbCrlf & "Votre mot de passe : "
| VAR3 .Send

.TextBody = _
"Votre Login : " & arrVars (1) & VBCrLf & _
"Votre mot de passe : " & arrVars (2)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
F. Dunoyer [MVP]
Gilles LAURENT [MVP] a formulé la demande :
"Itsejoke" a écrit dans le message de
news:%
Bonjour à tous,


Bonsoir,

Je voudrais envoyer un mail personnalisé en VBS à une liste de
collaborateurs avec 3 variables :

- Email du destinataire : VAR1
- Login du destinataire : VAR2
- Mot de passe du destinataire : VAR3

Le mieux serait d'être dans un fichier Excel, ou fichier TXT


Soit le fichier de type texte VARs.txt au format csv dans lequel chaque
champ est séparé par une virgule et contient les informations suivantes
Mets un ; suffixe le en .csv et au passage tu peux l'editer facilement

avec Excel ;)

--
François Dunoyer [MVP Windows Server Admin Framework]
Quelques textes qui m'ont séduit : http://fdunoyer.free.fr/textes.htm
Site perso : http://www.fdunoyer.net
Blog perso : http://fdunoyer.spaces.live.com/


Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Re !

Ci-dessous, une solution complète, avec Ponx.
Les données sont contenues dans le tableau Excel C:mdata.xls.
Trois colonnes sont utilisées : destinataire, login, mot de passe.
Le script lit les lignes, à partir de la ligne 1, et tant qu'il y a des
données (generator).
Le message est ensuite composé, puis envoyé. Pour coller à l'exemple
cité, certain paramètres ont été omis (valeurs par défaut) ; notamment
les éventuelles identifications SMTP, les pièces jointes, les payloads.
Le fichier Excel est fermé à la fin.
Excel doit être installé sur le poste (il y a des solutions pour lire
les fichiers Excel, sans Excel, mais c'est plus compliqué).


La première version est en Python, et affiche les données, au fur et à
mesure du traitement:

import pxexcel,time,ponx
x=pxexcel.exl('C:mdata.xls') #ouverture fichier C:mdata.xls
for lval in x.getRCellule(1,1,2,3): #depuis lig.1 col.1+2+3 tant que
col.1
sujet='Sujet '+ time.strftime('%a, %d %b %Y %H:%M:%S')
body='Votre login : '+ lval[1] +'rnVotre mot de passe : ' +
lval[2]
ponx.mailfiles(lval[0], lval[1], subject=sujet, message=body,
smtpserveur='smtp.fournisseur.fr',port%)
print 'Envoi :',lval[0]
print 'Fini'
x.pxclose()



Cette deuxième version est utilisée par un script VBscript ; elle
n'affiche pas la progression :

Set ponx = WScript.CreateObject("Ponx.Mci")
s=""
s=s & "import pxexcel" & vbCrlf
s=s & "x=pxexcel.exl('C:mdata.xls')" & vbCrlf
s=s & "for lval in x.getRCellule(1,1,2,3):" & vbCrlf
s=s & " sujet='Sujet '+ time.strftime('%a, %d %b %Y %H:%M:%S')" &
vbCrlf
s=s & " body='Votre login : '+ lval[1] +'rnVotre mot de passe : ' +
lval[2]" & vbCrlf
s=s & " mailfiles(lval[0], lval[1], subject=sujet, message=body,
smtpserveur='smtp.fournisseur.fr',port%)" & vbCrlf
s=s & "x.pxclose()" & vbCrlf
ponx.PRun(s)




@-salutations

Michel Claveau
Avatar
Itsejoke
Bonsoir et merci à François, Michel et à Gilles pour vos réponses détaillées
:-)
Que du bonheur : allez, je vais essayer tout ça :-))

Merci !!
RV


"F. Dunoyer [MVP]" ~.net> a écrit dans le
message de news:
Gilles LAURENT [MVP] a formulé la demande :
"Itsejoke" a écrit dans le message de
news:%
Bonjour à tous,


Bonsoir,

Je voudrais envoyer un mail personnalisé en VBS à une liste de
collaborateurs avec 3 variables :

- Email du destinataire : VAR1
- Login du destinataire : VAR2
- Mot de passe du destinataire : VAR3

Le mieux serait d'être dans un fichier Excel, ou fichier TXT


Soit le fichier de type texte VARs.txt au format csv dans lequel chaque
champ est séparé par une virgule et contient les informations suivantes
Mets un ; suffixe le en .csv et au passage tu peux l'editer facilement

avec Excel ;)

--
François Dunoyer [MVP Windows Server Admin Framework]
Quelques textes qui m'ont séduit : http://fdunoyer.free.fr/textes.htm
Site perso : http://www.fdunoyer.net
Blog perso : http://fdunoyer.spaces.live.com/