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 :
Et voici l'erreur, en espérant que l'image fonctionne :
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") {
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!
Partager