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

C# Discussion :

Déplacer un mail


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Déplacer un mail
    Bonjour,

    J'ai trouvé un code qui permet de déplacer un mail sélectionné vers un dossier choisi (outlook). Cela fonctionne, mais lorsque j'exécute le code puis que je sélectionne n'importe quel mail, il est déplacé dans le dossier "2019". J'aimerais que le processus ne s'active que pour le premier mail sélectionné. Quelqu'un sait si cela est possible ?

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using Office = Microsoft.Office.Core;
    using System.IO;
    using Microsoft.Office.Interop.Outlook;
     
    namespace deplacermail
    {
        public partial class ThisAddIn
        {
            private Explorer currentExplorer;
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
                currentExplorer = this.Application.ActiveExplorer();
                currentExplorer.SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(CurrentExplorer_Event);
            }
     
            private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
            {
                // Remarque*: Outlook ne déclenche plus cet événement. Si du code
                //    doit s'exécuter à la fermeture d'Outlook (consultez https://go.microsoft.com/fwlink/?LinkId=506785)
            }
     
            public void CurrentExplorer_Event()
            {
                Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); //sélectionne la boîte de réception
                Outlook.MAPIFolder selectedFolder = this.Application.ActiveExplorer().CurrentFolder; // dossier sélectionné -> inutile?
                string path = selectedFolder.FolderPath;
                Outlook.MAPIFolder destFolder = inBox.Folders["2019"]; // Dossier où l'on veut déplacer le mail
     
                    if (this.Application.ActiveExplorer().Selection.Count > 0)
                    {
                        Object selObject = this.Application.ActiveExplorer().Selection[1]; // mail sélectionné
                        Outlook.MailItem moveMail = null; //initialisation
                        if (selObject is Outlook.MailItem)
                        {
                            moveMail = selObject as Outlook.MailItem;
                            moveMail.Move(destFolder); // Les mails sont déplacés dans le dossier choisi
     
     
                        }
                    }
     
     
     
            }
     
            #region Code généré par VSTO
     
            /// <summary>
            /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
            /// le contenu de cette méthode avec l'éditeur de code.
            /// </summary>
            private void InternalStartup()
            {
                this.Startup += new System.EventHandler(ThisAddIn_Startup);
                this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
            }
     
            #endregion
        }
    }

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 780
    Points : 5 537
    Points
    5 537
    Par défaut
    Il suffit de conditionner le déplacement avec un booléen que tu mets à false après le premier déplacement.

    Je ne sais pas ce que tu cherches à faire mais déplacer un mail juste en cliquant dessus va être perturbant pour l'utilisateur car ce n'est pas un comportement auquel il s'attend.
    Ce genre de comportement devrait être mis en place sur le clic d'un bouton fait pour ça.
    Cela évitera de déplacer un mail sur un clic involontaire.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/09/2011, 16h18
  2. Javamail - Déplacer un mail du dossier INBOX vers un autre dossier
    Par hackwell69 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 03/11/2009, 15h02
  3. Déplacer un mail dans un "dossier personnel" de mon choix
    Par Dailyplanet dans le forum VBA Outlook
    Réponses: 30
    Dernier message: 17/12/2008, 17h45
  4. Réponses: 2
    Dernier message: 10/06/2008, 13h24
  5. déplacer les mails envoyés par VBA directement
    Par benpinta dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 04/12/2007, 13h53

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