IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Envoi mail avec condition [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Points : 22
    Points
    22
    Par défaut Envoi mail avec condition
    Bonjour,

    Je souhaite automatiser l'envoi de mail à l'aide d'outlook.
    J'ai un dossier un possède plusieurs fichiers, et je souhaite selon le fichier envoyer à une certaine adresse mail, par exemple, le fichier est envoyé à @exemple.fr, le fichier à 2@exemple.fr.

    J'ai créer un objet COM outlook, et ensuite je dois mettre dans mon script un if, mais je ne voit pas quoi mettre dans la condition du if, et à l'intérieur du if.

    Donc, selon-vous, comment faire pour envoyer un fichier à une adresse mail spécifique avec une condition ?

    Merci d'avance.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    si à un fichier correspond une adresse mail tu peux utiliser une hashtable :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #Powershell v4
    $h=@{}
    $h.'test.txt'='Un@destinataire.com'
    $h.'Test.csv'='Deux@destinataire.com'
     
    $h.'test.txt'
    #Un@destinataire.com
     
    $Name='test.txt'
    $h.$Name
    #Un@destinataire.com
    Sinon utilise un Switch au lieu d'un if

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Points : 22
    Points
    22
    Par défaut
    Donc, je fait un if, si le fichier s'apelle test1, j'envoi à cette adresse mail, si le fichier s'appelle test2, j'envoi à cette adresse mail.
    Mais je met comment dans la condition du if ?

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tifil Voir le message
    Mais je met comment dans la condition du if ?
    Cela dépend de l'objet que tu traites, si c'est un fichier (Get-Item) ce sera la propriété Name :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($File.Name -eq 'test1.txt') { "Send @ 1"}
    elseif ($File.Name -eq 'test2.txt') { "Send @ 2"}
    elseif 
    ...
    else {Write-error ("Fichier inconnu: {0}" -F $File.Name)}

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pouf l'aide.
    Ça marche.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Points : 22
    Points
    22
    Par défaut
    Re,

    Je vais maintenant le faire avec une autre méthode, avec hastables.
    J'ai mon fichier html qui se compose ainsi: edt - nomClasse - semaine.html

    Ensuite quand je dois exécuter mon script, je dois lui passer en paramètre le nom du fichier html, donc je dois juste récuperer le champ nomClasse, que je fait à l'aide d'un split.

    Alors, je créer mon objet com outlook, ensuite je créer un hash de mes classes avec cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $classemails = @{IRIS1 = "iris1@test.fr" ; IRIS2 = "iris2@test.fr"};
    Ensuite à l'aide de la commande regex, je dois définir le séparateur de champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [regex]$regexobject = '-';
    Je sais que je dois utiliser un foreach juste ensuite, avec à l'intérieur mon split:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($file in $args){
    
    $classe = split($file,t,"-');
    
    
    $addr = $classemails[$classe]
    
    }
    Donc, ici je fait mon foreach suivi du split.
    Si vous pouviez m'éclairer pour l'intérieur de mon foreach, où est-ce que je rajoute ensuite mes méthodes .To, .Subject... pour l'envoi du mail.

    Merci d'avance

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tifil Voir le message
    Si vous pouviez m'éclairer pour l'intérieur de mon foreach,
    Je n'ai pas trop compris ce que tu veux faire, recherche 'powershell outlook send email' tu trouveras des exemples à foison.

    Il existe l'opérateur -Split à partir de la version 3.0 de PS (cf. $PSVersiontable) et n'utilise pas $args mais des paramètre nommés

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Points : 22
    Points
    22
    Par défaut
    En gros, je doit passer en paramètre quand j’exécute mon script un nom de fichier.
    Dans ce script, je dois analyser ce paramètre, extraire juste une certaine chaîne de caractère, puis en fonction de cette chaîne, j'envoi à cette adresse mail.
    Et pour faire tout ça, j'utilise des hastable avec la méthode regex.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi mail avec conditions multiples
    Par tibobear dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/09/2011, 11h49
  2. [javamail] envoi mail avec message en pièce jointe
    Par k4eve dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/11/2007, 11h17
  3. envoi mail avec condition
    Par liloo974 dans le forum VBScript
    Réponses: 2
    Dernier message: 28/08/2007, 10h35
  4. Envoi mail avec Outlook accusé de réception
    Par KapoueMan dans le forum Access
    Réponses: 2
    Dernier message: 14/04/2005, 10h41
  5. envoi mail avec piece jointe fichier excel
    Par flogreg dans le forum ASP
    Réponses: 12
    Dernier message: 20/12/2004, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo