Envoi mail en vbs avec 3 variables via un fichier Excel
Le
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.
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.
En fait, quel est le problème ? (perso, j'ai échoué à l'exam de
divination).
--
@-salutations
Michel Claveau
| 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
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/
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
:-)
Que du bonheur : allez, je vais essayer tout ça :-))
Merci !!
RV
"F. Dunoyer [MVP]" message de news: