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 :

Soucis liste de MailItem


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Soucis liste de MailItem
    Bonjour,

    Depuis un certain temps, je fais "joujou" avec ma boite Mail Outlook, tout se passe plutôt bien, il y a peut être du superflu à épurer ou de l'optimisation à faire, mais ça fonctionne, donc je suis content.

    Cependant : je rencontre un soucis lorsque le "dossier" Outlook pointé contient des "mails", de type : "Non-Remis", Invitation Réunion Teams, réponse à une invitation teams, ou autre "objets" présents dans une boite mail Outlook sans qu'on puisse interagir avec comme un Mail normal.

    Le mail "fauté" est ajouté à ma liste d'Outlook.Items sans soucis, mais lorsque je parcours ma liste, ça renvoie une erreur simplement sur le fait de pointer dessus (au tout début du foreach).

    Voici le début du code, avec l'endroit où ça plante, pour l'exemple :
    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
     
                Outlook.Application outlookApp = new Outlook.Application();
     
                // Récupérez le dossier "Boîte de réception"
                Outlook.MAPIFolder folder = outlookApp.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
     
                string saveDir = ConfigurationManager.AppSettings["PlanningIrisDEST"];
                string saveDir2 = ConfigurationManager.AppSettings["Planning2DEST"];
     
                if (Directory.Exists(saveDir) == false) { Directory.CreateDirectory(saveDir); }
                if (Directory.Exists(saveDir2) == false) { Directory.CreateDirectory(saveDir2); }
     
                Outlook.NameSpace outlookNamespace = outlookApp.GetNamespace("MAPI");
                outlookNamespace.Logon();
     
                string folderPathMail = outlookApp.Session.DefaultStore.GetRootFolder().FolderPath + ConfigurationManager.AppSettings["PlanningIrisSRC"]; 
                Outlook.MAPIFolder targetFolderSuper = GetFolder(folderPathMail, outlookApp);
                Outlook.Items itemsSuper = targetFolderSuper.Items.Restrict("[ReceivedTime] > '" + (DateTime.Now.AddDays(-x)).ToString("yyyy-dd-MM") + "'"); 
     
                try
                {
                    foreach (Outlook.MailItem email in itemsSuper)   // CA PLANTE ICI, ALED
                    {
                        if (email.SenderEmailAddress.StartsWith("/O=EXCHANGE")) { 
                            if (email.Sender.GetExchangeUser().PrimarySmtpAddress == "ro.adaptation-geov@reseau.sncf.fr")
                            {
    Et voici l'erreur, en espérant que l'image fonctionne :
    Nom : devnet.png
Affichages : 69
Taille : 7,6 Ko

    Ma piste, c'est que peut être que dire Outlook.Items est trop global, et dire Outlook.MailItems itemsSuper = targetFolderSuper.MailItems.Restrict(blabla); est mieux?

    J'envoie le message ici pendant que je fais des tests dans mon coin parce que ça commence à sacrément m'embêter, mais merci d'avance de votre aide!

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 730
    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 730
    Points : 5 391
    Points
    5 391
    Par défaut
    Je pense que ton problème vient du fait que MAPIFolder.Items ne renvoie pas uniquement des MailItem.
    C'est la raison pour laquelle Items renvoie une collection de Object.

    Par exemple les invitation Teams sont probablement des AppoitmentItem ou des MeetingItem.
    La liste complète à l'adresse ci-dessous :
    https://learn.microsoft.com/en-us/of...k-item-objects

    Si tu veux être certain de récupérer uniquement les MailItem, il faut utiliser OfType.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var mails = folder.Items.OfType<MailItem>();

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup, ça fonctionne!


    Je passe le sujet en résolu

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

Discussions similaires

  1. Souci liste déroulante
    Par BZH75 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/08/2011, 15h07
  2. soucis liste déroulante
    Par marcmarc150 dans le forum IHM
    Réponses: 4
    Dernier message: 10/12/2009, 09h17
  3. souci liste chainee
    Par mdabire dans le forum C
    Réponses: 1
    Dernier message: 13/04/2008, 09h58
  4. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 08h30
  5. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08

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