Question Envoi de mail via Outlook + liste destinataires

Plus d'informations
il y a 8 ans 7 mois #24068 par Yann
Bonjour,

je début en powershell et je souhaiterais savoir comment récupérer des informations dans un fichiers txt contenant plusieurs informations

mon fichier txt est de ce type:

adressemaildestinataire * info1 * info2 * info3 * info4 * info5

ce fichier peut contenir plusieurs lignes

mon but est de récupérer l'adresse mail du destinataire pour lui envoyer la ligne avec les informations le concernant.

Merci pour votre aide

mon script pour l'envoie d email est celui ci:
$ol = New-Object -comObject Outlook.Application
gm -InputObject $ol
$mail = $ol.Session.OpenSharedItem(\"D:\FIC\NATCON\Pvcl1.msg\")
$mail.Forward()
$Mail.Recipients.Add(\"fred@bloggs.com\")
$Mail.Subject = \"Test Mail\"
$Mail.Body = \" Test Mail 22222 \"
$Mail.Send()

Message édité par: Arnaud, à: 22/08/17 09:35<br><br>Message édité par: Arnaud, à: 22/08/17 09:36

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24073 par Philippe
salut landu91

tu peut faire un truc comme ça :

$header = \&quot;adressemaildestinataire\&quot;,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;

$lesdatas = Import-Csv \&quot;.\testscript\test2.txt\&quot; -Header $header -delimiter \&quot;*\&quot;

foreach ($uneligne in $lesdatas) {
$ol = New-Object -comObject Outlook.Application
$mail = $ol.Session.OpenSharedItem(\&quot;D:FICNATCONPvcl1.msg\&quot;)
$mail.Forward()
$Mail.Recipients.Add(\&quot;fred@bloggs.com\&quot;)
$Mail.Subject = \&quot;Test Mail\&quot;
$Mail.Body = \&quot; Test Mail 22222 \&quot;
$Mail.Body += \&quot;`n`rinformation 1 : \&quot;+$uneligne.info1
$Mail.Body += \&quot;`n`rinformation 2 : \&quot;+$uneligne.info2
$Mail.Body += \&quot;`n`rinformation 3 : \&quot;+$uneligne.info3
$Mail.Body += \&quot;`n`rinformation 4 : \&quot;+$uneligne.info4
$Mail.Body += \&quot;`n`rinformation 5 : \&quot;+$uneligne.info5
$Mail.Send()
}

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24079 par Yann
bonjour merci pour ton aide.

j'ai trouver également un autre moyen qui est celui ci:

$header = adressemaildestinataire\&quot;,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;
$lesdatas = Import-Csv \&quot;.testscripttest2.txt\&quot; -Header $header -delimiter \&quot;*\&quot;
$lesdatas | out-file C:\\test2.txt -Encoding Unicode

#Start-Process Outlook

$o = New-Object -com Outlook.Application


$mail = $o.CreateItem(0)

#2 = high importance email header
$mail.importance = 1

$mail.subject = “bonjour“

$mail.body = \&quot; message du jour\&quot;
#for multiple email, use semi-colon ; to separate
$mail.To = “un@dest.com\&quot;
$mail.Send()

# $o.Quit()


maintenant j'aimerais pouvoir envoyer un mail a chaque destinataire qui correspond a 1 ligne dans le fichier.
les destinataires correspondent a la colonne adressemaildestinataire

exemple du fichier source
adressemaildestinataire\&quot;,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;
1@dest.com,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;
2@dest.com,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;
...
10@dest.com,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;


dans chaque mail je voudrais avoir:

bonjour

voici les info du jour

1@dest.com,\&quot;info1\&quot;,\&quot;info2\&quot;,\&quot;info3\&quot;,\&quot;info4\&quot;,\&quot;info5\&quot;

cordialement.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24080 par Philippe
sais tu ce qu'est une boucle ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24081 par Yann
oui mais je ne suis pas très doué en dev pour ne pas dire nul... mais j'essai de me soigner

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24082 par Philippe

oui mais je ne suis pas très doué en dev pour ne pas dire nul...

y a des livres pour les nul :P ;)

a tu testé le script que je t'est donner pour voir le résultat dans tes mails (Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.) ?!!

sinon mon premier est complet avec boucle et tous ce dont t'a besoin

il te faut simplement modifier certaine lignes pour :
- l'adresse de destination :
$Mail.Recipients.Add(\&quot;fred@bloggs.com\&quot;) -> $Mail.Recipients.Add($uneligne.adressemaildestinataire)
- le sujet
$Mail.Subject = \&quot;Test Mail\&quot;
- le corps de l'email
$Mail.Body = \&quot; Test Mail 22222 \&quot; cette ligne est les lignes suivante

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.056 secondes
Propulsé par Kunena