Question Envoi d'un mail avec une variable dans le -body
- noblot
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 10 ans 9 mois #19780
par noblot
Envoi d'un mail avec une variable dans le -body a été créé par noblot
Bonjour à tous,
je vous faire part d'un souci que je 'n'arrive pas à réglé seul, alors par avance merci de votre aide
Mon Script Powershell créé des utilisateurs avec un password qu'il devront changer à la première connexion et j'exporte ces données dans un csv.
Puis je souhaiterais envoyer les informations de password dans leur ancienne boite mail.
la commande pour envoyé que j'utilise est :
Send-MailMessage -To $externalEmail -Subject 'User and Password' -BodyAsHtml $pwdUser -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
les variables sont récupérées d'un CSV , tous fonctionne correctement ,cependant je récupère dans mon courriel les variables mais non leurs valeurs.
Comment faites vous pour faire passer autre chose qu'un \"string \" dans l'argument \"Body\" .
J'espère avoir été clair .... grandement merci de votre aide
Bien Cordialement,
je vous faire part d'un souci que je 'n'arrive pas à réglé seul, alors par avance merci de votre aide
Mon Script Powershell créé des utilisateurs avec un password qu'il devront changer à la première connexion et j'exporte ces données dans un csv.
Puis je souhaiterais envoyer les informations de password dans leur ancienne boite mail.
la commande pour envoyé que j'utilise est :
Send-MailMessage -To $externalEmail -Subject 'User and Password' -BodyAsHtml $pwdUser -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
les variables sont récupérées d'un CSV , tous fonctionne correctement ,cependant je récupère dans mon courriel les variables mais non leurs valeurs.
Comment faites vous pour faire passer autre chose qu'un \"string \" dans l'argument \"Body\" .
J'espère avoir été clair .... grandement merci de votre aide
Bien Cordialement,
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 9 mois #19797
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Envoi d'un mail avec une variable dans le -body
Salut,
karol écrit:
Et le paramètre BodyAsHtml est de type boolean ...
karol écrit:
karol écrit:
On ne peut pas, car le paramètre est du type string.Comment faites vous pour faire passer autre chose qu'un \"string \" dans l'argument \"Body\" .
Et le paramètre BodyAsHtml est de type boolean ...
karol écrit:
Oui, mais sans le code sous les yeux difficile de t'aider.J'espère avoir été clair
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- noblot
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 10 ans 9 mois #19799
par noblot
Réponse de noblot sur le sujet Re:Envoi d'un mail avec une variable dans le -body
Bonjour Laurent ,
merci de ton aide. ci dessous le script:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
$UserCredential = Get-Credential
Import-Module MsOnline
$LogFile = \"C:\create-Compte2.log\"
Start-transcript -path $Logfile
Connect-MsolService -Credential $UserCredential
$user = Import-Csv -Path \"C:\User_Paris.csv\" -Delimiter \";\"
$ResultCreate = ForEach($user in $user)
{New-MsolUser -userPrincipalName $user.UserPrincipalName -displayname $user.displayname -firstname $user.firstname -lastname $user.lastname -Department $user.Department -Title $user.Title -MobilePhone $user.MobilePhone -Office $user.Office -PhoneNumber $user.PhoneNumber -usagelocation $user.usagelocation -StreetAddress $user.StreetAddress -PostalCode $user.PostalCode -City $user.City -Country $user.Country
Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -AddLicenses \"forsys:ENTERPRISEPACK\"
}
$ResultCreate | select Password, displayname, UserPrincipalName | export-csv c:\ExportResult2.csv -NoTypeInformation
$FilePassword = Import-Csv -Path \"c:\ExportResult2.csv \" -Delimiter \";\"
foreach ($pwd in $FilePassword)
{
$externalEmail = $user.PreviousEmail
$pwdUser = $pwd.password
$newEmail = $pwd.UserPrincipalName
Send-MailMessage -To $externalEmail -Subject 'User and Password' -BodyAsHtml $pwdUser -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
Dans les grandes lignes , je crée des comptse exchange dans office365 avec des attributs tirés d'un fichier CSV. une fois les comptes créés ,le password et email sont exportés dans un autre CSV et je souhaiterais automatiser l'envoie du mot de passe à l'ancienne adresse. tous fonctionne correctement sauf que dans le corp du mail,je vois \"$pwdUser \" au lieu du mot de passe
n'y a t'il pas un argument de qui me permet de passe une variable dans le corp du mail ?
merci de ton aide. ci dessous le script:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
$UserCredential = Get-Credential
Import-Module MsOnline
$LogFile = \"C:\create-Compte2.log\"
Start-transcript -path $Logfile
Connect-MsolService -Credential $UserCredential
$user = Import-Csv -Path \"C:\User_Paris.csv\" -Delimiter \";\"
$ResultCreate = ForEach($user in $user)
{New-MsolUser -userPrincipalName $user.UserPrincipalName -displayname $user.displayname -firstname $user.firstname -lastname $user.lastname -Department $user.Department -Title $user.Title -MobilePhone $user.MobilePhone -Office $user.Office -PhoneNumber $user.PhoneNumber -usagelocation $user.usagelocation -StreetAddress $user.StreetAddress -PostalCode $user.PostalCode -City $user.City -Country $user.Country
Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -AddLicenses \"forsys:ENTERPRISEPACK\"
}
$ResultCreate | select Password, displayname, UserPrincipalName | export-csv c:\ExportResult2.csv -NoTypeInformation
$FilePassword = Import-Csv -Path \"c:\ExportResult2.csv \" -Delimiter \";\"
foreach ($pwd in $FilePassword)
{
$externalEmail = $user.PreviousEmail
$pwdUser = $pwd.password
$newEmail = $pwd.UserPrincipalName
Send-MailMessage -To $externalEmail -Subject 'User and Password' -BodyAsHtml $pwdUser -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
Dans les grandes lignes , je crée des comptse exchange dans office365 avec des attributs tirés d'un fichier CSV. une fois les comptes créés ,le password et email sont exportés dans un autre CSV et je souhaiterais automatiser l'envoie du mot de passe à l'ancienne adresse. tous fonctionne correctement sauf que dans le corp du mail,je vois \"$pwdUser \" au lieu du mot de passe
n'y a t'il pas un argument de qui me permet de passe une variable dans le corp du mail ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 9 mois #19801
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Envoi d'un mail avec une variable dans le -body
karol écrit:
[code:1]
foreach ($pwd in $FilePassword)
{
$externalEmail = $user.PreviousEmail
$newEmail = $pwd.UserPrincipalName
#Peut contenir des balises HTML si on précise -BodyAsHtml
$Body =@\"
Votre mot de passe est :
$($pwd.password)
Suite du message
\"@
Send-MailMessage -To $externalEmail -Subject 'User and Password' -Body $Body -BodyAsHtml -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
[/code:1]
Ceci dit la construction de la ligne d'envoi de mail me semble erroné.
Et à priori, tu peux éviter l'usage de fichier csv intermédiaire
Le seul paramètre concerné est -Body, la construction de son contenu peut se baser sur la substitution de variable :n'y a t'il pas un argument de qui me permet de passe une variable dans le corp du mail ?
[code:1]
foreach ($pwd in $FilePassword)
{
$externalEmail = $user.PreviousEmail
$newEmail = $pwd.UserPrincipalName
#Peut contenir des balises HTML si on précise -BodyAsHtml
$Body =@\"
Votre mot de passe est :
$($pwd.password)
Suite du message
\"@
Send-MailMessage -To $externalEmail -Subject 'User and Password' -Body $Body -BodyAsHtml -smtpserver smtp.office365.com -usessl -Credential $UserCredential
}
[/code:1]
Ceci dit la construction de la ligne d'envoi de mail me semble erroné.
Et à priori, tu peux éviter l'usage de fichier csv intermédiaire
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- noblot
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 10 ans 9 mois #19804
par noblot
Réponse de noblot sur le sujet Re:Envoi d'un mail avec une variable dans le -body
Wahou merci , effectivement je récupère les valeurs de mes variables dans le corp du mail.MAIS.....
je vois ça dans le mail:
Votre mot de passe est
@{UserPrincipalName=titi@labinfra.com; Password=Hoqo7424}
je n'arrives pas à suprimer le \"@{\" devant le USERprincipalName
de meme que je n'arrives pas à mettre le password sur la ligne du dessous
Encore une idée fantastique à me proposer??
je mettrais mon code complet en ligne dès que le script sera tout propre:)
je vois ça dans le mail:
Votre mot de passe est
@{UserPrincipalName=titi@labinfra.com; Password=Hoqo7424}
je n'arrives pas à suprimer le \"@{\" devant le USERprincipalName
de meme que je n'arrives pas à mettre le password sur la ligne du dessous
Encore une idée fantastique à me proposer??
je mettrais mon code complet en ligne dès que le script sera tout propre:)
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 9 mois #19805
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Envoi d'un mail avec une variable dans le -body
karol écrit:
Ceci fonctionne :
[code:1]
#crée un objet
$pwd='s'|select password
$pwd.password='abc456'
$pwd.password
$Body =@\"
Votre mot de passe est :
$($pwd.password)
Suite du message
\"@
$body
[/code:1]
Ceci aussi, mais ne renvoie pas le résultat souhaité :
[code:1]
$bodybag=@\"
Votre mot de passe est :
$($pwd)
Suite du message
\"@
$bodybag
[/code:1]
Vérifie ta syntaxe, car la présence du \"@{\" indique que ton code transforme le contenu d'un objet et pas la propriété d'un objet.je n'arrives pas à suprimer le \"@{\" devant le USERprincipalName
Ceci fonctionne :
[code:1]
#crée un objet
$pwd='s'|select password
$pwd.password='abc456'
$pwd.password
$Body =@\"
Votre mot de passe est :
$($pwd.password)
Suite du message
\"@
$body
[/code:1]
Ceci aussi, mais ne renvoie pas le résultat souhaité :
[code:1]
$bodybag=@\"
Votre mot de passe est :
$($pwd)
Suite du message
\"@
$bodybag
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.055 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Envoi d'un mail avec une variable dans le -body