Question Mail de bienvenue

Plus d'informations
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 :s). Je vois ça aujourd'hui et vendredi.

Je vous tiens informé, Merci !

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

Plus d'informations
il y a 12 ans 9 mois #14969 par Laurent Dardenne
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 ?

Tutoriels PowerShell

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

Plus d'informations
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.

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.

Plus d'informations
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 ?

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

Plus d'informations
il y a 12 ans 9 mois #14974 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Mail de bienvenue
TOR écrit:

Je ne comprend pas cette dernière question, peux tu développer stp ?

tu testes 'OU=FR' en tant que pattern d'un expression régulière, cf l'opérateur -Match.
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:

A quel endroit places-tu cette fonction :

En tant que fonction imbriquée :
[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:

A quoi correspond la variable $Alias ?

Effectivement c'est un paramètre de fonction. Mais attention le code cité ne sera peut être pas identique à celui que tu vas utilisé.
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:

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 ?

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.

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
Propulsé par Kunena