Question
Mail de bienvenue
- leroy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 9 mois #14968
par leroy
Réponse de leroy sur le sujet Re:Mail de bienvenue
Bonjour Laurent, 6ratgus,
Merci à vous deux pour vos réponses.
Je vais donc tester la solution de Laurent, mais cela va surement me prendre un peu de temps (étant donné que je suis novice
). Je vois ça aujourd'hui et vendredi.
Je vous tiens informé, Merci !
Merci à vous deux pour vos réponses.
Je vais donc tester la solution de Laurent, mais cela va surement me prendre un peu de temps (étant donné que je suis novice
Je vous tiens informé, Merci !
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 12 ans 9 mois #14969
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Mail de bienvenue
Avant de te lancer dans le code, il te faut répondre au moins à ces qq questions :
-Que faire si au moins un des fichiers template n'existe pas ? Arrêter le traitement ? Dans ce cas à quel moment effectuer ce test, au début du script ( prérequis) ?
Les cultures que tu souhaites gérer sont-elles uniquement Fr et US ? Et le pattern que tu souhaites tester, pour le CN, peut-il renvoyer plusieurs occurences ?
-Que faire si au moins un des fichiers template n'existe pas ? Arrêter le traitement ? Dans ce cas à quel moment effectuer ce test, au début du script ( prérequis) ?
Les cultures que tu souhaites gérer sont-elles uniquement Fr et US ? Et le pattern que tu souhaites tester, pour le CN, peut-il renvoyer plusieurs occurences ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- leroy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 9 mois #14971
par leroy
Réponse de leroy sur le sujet Re:Mail de bienvenue
Laurent,
En effet si le template est introuvable, il faut stopper le script et ne pas envoyer de message vide.
Il n'y a en effet que 2 templates (en français et en anglais) c'est pour cela que j'utilisai une condition IF : dans le cas FR, envoyer le template en français et dans tous les autres cas ( italiens, espagnol, chinois...) envoyer le template anglais. Cette condition ne changera pas, nous aurons toujours que 2 templates.
Je ne comprend pas cette dernière question, peux tu développer stp ?
En effet si le template est introuvable, il faut stopper le script et ne pas envoyer de message vide.
Il n'y a en effet que 2 templates (en français et en anglais) c'est pour cela que j'utilisai une condition IF : dans le cas FR, envoyer le template en français et dans tous les autres cas ( italiens, espagnol, chinois...) envoyer le template anglais. Cette condition ne changera pas, nous aurons toujours que 2 templates.
Et le pattern que tu souhaites tester, pour le CN, peut-il renvoyer plusieurs occurences ?
Je ne comprend pas cette dernière question, peux tu développer stp ?
Connexion ou Créer un compte pour participer à la conversation.
- leroy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 9 mois #14972
par leroy
Réponse de leroy sur le sujet Re:Mail de bienvenue
Laurent,
J'ai une autre question :
A quel endroit places-tu cette fonction :
[code:1]function GetTemplateFromAlias{
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
$Alias
)
#Get welcome mail template
if (-not (Test-Path -Path $Template -PathType Leaf)) {
#Cannot find welcome mail template
$errorMsg = $Messages.CannotFindWelcomeMailTemplate
$errorMsg = $errorMsg -f $Template
$customError = New-OSCPSCustomErrorRecord `
-ExceptionString $errorMsg `
-ErrorCategory NotSpecified -ErrorID 1 -TargetObject $pscmdlet
$pscmdlet.ThrowTerminatingError($customError) #TODO ******* QUEL COMPORTEMENT ??
} else {
if ($Alias -Match \"OU=FR\"«»)
{$Key='Fr'}
else
{$Key='Us'}
#TODO ******* Quid des autres langues ?
#Get welcome mail body.
$welcomeMailBody = [string](Get-Content $Template.$Key)
}
#Replace any placeholders with real values
if ($ReplacePlaceholders -ne $null) {
foreach ($placeholders in $ReplacePlaceholders.GetEnumerator())
{
$welcomeMailBody = $welcomeMailBody -replace $($placeholders.Key),$($placeholders.Value)
}
}
}[/code:1]
Autre qustion : A quoi correspond la variable $Alias ? Je suppose qu'elle contient la chaine de caractère qui permettra de définir la langue du template, mais je ne vois pas à quel endroit c'est définit. Je pensais trouver quelque chose de ce style :
[code:1]$Alias=$newlyCreatedMailboxAlias.DistinguishedName[/code:1]
Mais dans ce cas n'allons nous pas nous retrouver dans le même cas de figure qu'au départ : appel de variable non existante pour le moment ?
J'ai une autre question :
A quel endroit places-tu cette fonction :
[code:1]function GetTemplateFromAlias{
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
$Alias
)
#Get welcome mail template
if (-not (Test-Path -Path $Template -PathType Leaf)) {
#Cannot find welcome mail template
$errorMsg = $Messages.CannotFindWelcomeMailTemplate
$errorMsg = $errorMsg -f $Template
$customError = New-OSCPSCustomErrorRecord `
-ExceptionString $errorMsg `
-ErrorCategory NotSpecified -ErrorID 1 -TargetObject $pscmdlet
$pscmdlet.ThrowTerminatingError($customError) #TODO ******* QUEL COMPORTEMENT ??
} else {
if ($Alias -Match \"OU=FR\"«»)
{$Key='Fr'}
else
{$Key='Us'}
#TODO ******* Quid des autres langues ?
#Get welcome mail body.
$welcomeMailBody = [string](Get-Content $Template.$Key)
}
#Replace any placeholders with real values
if ($ReplacePlaceholders -ne $null) {
foreach ($placeholders in $ReplacePlaceholders.GetEnumerator())
{
$welcomeMailBody = $welcomeMailBody -replace $($placeholders.Key),$($placeholders.Value)
}
}
}[/code:1]
Autre qustion : A quoi correspond la variable $Alias ? Je suppose qu'elle contient la chaine de caractère qui permettra de définir la langue du template, mais je ne vois pas à quel endroit c'est définit. Je pensais trouver quelque chose de ce style :
[code:1]$Alias=$newlyCreatedMailboxAlias.DistinguishedName[/code:1]
Mais dans ce cas n'allons nous pas nous retrouver dans le même cas de figure qu'au départ : appel de variable non existante pour le moment ?
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 12 ans 9 mois #14974
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Mail de bienvenue
TOR écrit:
Ce qui fait qu'avec cette chaîne de recherche, pattern, la chaîne suivante :
[code:1]
$S='OU=FRancfort'
[/code:1]
renverra true pour le test sur FR :
[code:1]
$pattern='OU=FR'
$S -Match $pattern
[/code:1]
Tu dois donc 'ancrer' ton expression régulière pour ne pas fausser ton analyse. Mais comme je ne connais pas le nommage de ton AD, ma remarque est peut être nulle et non avenue.
Cela reste un point à étudier.
TOR écrit:
[code:1]
function Get-FirstLevel {
function Get-Nested {
Write-Host \"Nested\"
}
Write-Host \"FirstLevel\"
Get-Nested
}
Get-FirstLevel
Get-Nested #erreur, n'est pas déclarée dans la portée courante
[/code:1]
TOR écrit:
Exemple d'usage de la fonction :
[code:1]
#Send welcome mail to each newly created mailbox.
if ($newlyCreatedMailboxes -ne $null) {
foreach ($newlyCreatedMailbox in $newlyCreatedMailboxes) {
$newlyCreatedMailboxAlias = $newlyCreatedMailbox.Alias
$welcomeMailBody= GetTemplateFromAlias $newlyCreatedMailboxAlias *** #APPEL de fonction
$newlyCreatedMailboxDisplayName = $newlyCreatedMailbox.DisplayName
$mailBody = $welcomeMailBody -replace \"Placeholder00\",$newlyCreatedMailboxDisplayName
[/code:1]
TOR écrit:
Que faire si l'alias n'est pas renseigné ? Renvoyer un mail avec le template US ?
tu testes 'OU=FR' en tant que pattern d'un expression régulière, cf l'opérateur -Match.Je ne comprend pas cette dernière question, peux tu développer stp ?
Ce qui fait qu'avec cette chaîne de recherche, pattern, la chaîne suivante :
[code:1]
$S='OU=FRancfort'
[/code:1]
renverra true pour le test sur FR :
[code:1]
$pattern='OU=FR'
$S -Match $pattern
[/code:1]
Tu dois donc 'ancrer' ton expression régulière pour ne pas fausser ton analyse. Mais comme je ne connais pas le nommage de ton AD, ma remarque est peut être nulle et non avenue.
Cela reste un point à étudier.
TOR écrit:
En tant que fonction imbriquée :A quel endroit places-tu cette fonction :
[code:1]
function Get-FirstLevel {
function Get-Nested {
Write-Host \"Nested\"
}
Write-Host \"FirstLevel\"
Get-Nested
}
Get-FirstLevel
Get-Nested #erreur, n'est pas déclarée dans la portée courante
[/code:1]
TOR écrit:
Effectivement c'est un paramètre de fonction. Mais attention le code cité ne sera peut être pas identique à celui que tu vas utilisé.A quoi correspond la variable $Alias ?
Exemple d'usage de la fonction :
[code:1]
#Send welcome mail to each newly created mailbox.
if ($newlyCreatedMailboxes -ne $null) {
foreach ($newlyCreatedMailbox in $newlyCreatedMailboxes) {
$newlyCreatedMailboxAlias = $newlyCreatedMailbox.Alias
$welcomeMailBody= GetTemplateFromAlias $newlyCreatedMailboxAlias *** #APPEL de fonction
$newlyCreatedMailboxDisplayName = $newlyCreatedMailbox.DisplayName
$mailBody = $welcomeMailBody -replace \"Placeholder00\",$newlyCreatedMailboxDisplayName
[/code:1]
TOR écrit:
Pas sûr de comprendre ta remarque. Si le code $newlyCreatedMailbox.Alias renvoi une valeur, la fonction GetTemplateFromAlias renverra une valeur, mais seul les tests le confirmeront.Mais dans ce cas n'allons nous pas nous retrouver dans le même cas de figure qu'au départ : appel de variable non existante pour le moment ?
Que faire si l'alias n'est pas renseigné ? Renvoyer un mail avec le template US ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.066 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Mail de bienvenue