myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns
» Datenschutzerklärung
» Impressum

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Office-Technologien » Exchange EWS - E-Mail senden und wiederfinden
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Exchange EWS - E-Mail senden und wiederfinden

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jörg Jörg ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.01.2009
Beiträge: 141
Entwicklungsumgebung: VS Community 2017


Jörg ist offline

Exchange EWS - E-Mail senden und wiederfinden

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich stehe vor einem banalen Problem, G**** hilft mir leider nicht weiter.

Ich versende eine E-Mail mit der Exchange EWS-API und speichere diese im Ordner 'Gesendete Objekte' des angemeldeten Benutzers. Dies klappt mit folgendem Code einwandfrei:

C#-Code:
            EmailMessage newEmail = new EmailMessage(service);
            newEmail.ToRecipients.Add("empfä[email protected]");
            newEmail.Subject = "Betreff 0815";
            newEmail.Body = new MessageBody("Hallo Welt");
            newEmail.SendAndSaveCopy();

Nun würde ich gerne später die E-Mail wieder aufrufen können. Folgender Code funktioniert grundsätzlich:

C#-Code:
            Folder sent = Folder.Bind(service, WellKnownFolderName.SentItems);
            ItemView view = new ItemView(1);
            view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
            FindItemsResults<Item> results = sent.FindItems(view);
            foreach (Item item in results)
                if (item.Subject == "Betreff 0815")
                {
                    EmailMessage sentEmail = EmailMessage.Bind(service, item.Id);
                    //Irgendwas mit der E-Mail machen
                }

wie ihr aber seht vergleiche ich die Mail nur über den Betreff, da eine andere Mail im Ordner 'Gesendete Objekte' aber den gleichen Betreff haben könnte, kann ich mir nicht sicher sein dass es sich um die gesendete Mail aus dem ersten Code-Schnipsel handelt.

Die Item.ID-Eigenschaft der EmailMessage wird wohl erst im Exchange gesetzt, ist nach SendAndSaveCopy nicht verfügbar.
Des weiteren gibt es anscheinend keine freie Eigenschaft, in der man z.B. eine Guid mitgeben könnte.

Habt ihr eine Idee?
26.04.2019 10:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.649
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

IIRC gibts de facto keine Lösung für, daher verwenden viele Tools rund um Mails (zB. Ticketsysteme) eigene IDs in der Betreffzeile oder im Footer.
26.04.2019 14:08 Beiträge des Benutzers | zu Buddylist hinzufügen
Jörg Jörg ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.01.2009
Beiträge: 141
Entwicklungsumgebung: VS Community 2017

Themenstarter Thema begonnen von Jörg

Jörg ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

OK,

vielen Dank für deine Antwort.
29.04.2019 07:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 24.05.2019 13:33