Hallo.
Ich gebe auf und suche Hilfe.
Ich versuche seit mehreren Wochen eine Gesendete Email eineindeutig zu dem entsprechenden Entwurf zuzuordnen. Ohne Erfolg.
zuerst: Ich Programmiere in C#, verstehe aber auch die anderen gängigen Sprachen a la c++, VB, VB.net, java, jscript...
Was ich bisher versucht und erreicht habe:
David-Mail erstellen, (Ob nun als MailItem, MessageItem2 oder sonstwie ist mir relativ egal)
in Entwürfen speichern,
auf das Entwüfe_NeueMail-Event reagieren (zu diesem Zeitpunkt ist David mit dem speichern der mail fertig)
und die Mail via Process.Start anzeigen
Ich bin auf dem Ausgang_NeueMail-Event registriert und kann mir die "gesendeten" Emails ausgeben lassen.
ABER:
Ich habe keine Ahnung, ob ich (mein Programm) die Gesendete Mail erstellt hat, oder der User, oder wer-auch-immer.
Was ich möchte:
Ich würde gerne die Mail Identifizieren, um a) die "Entwurfs-Mail" zu löschen, und b) die Gesendete Mail (.eml) zu speichern.
Meine bisherigen Versuche (und woran sie gescheitert sind):
Achja, Was ich vergessen habe zu erwähnen: die _ID (RecNo, QID oder wie man sie auch nennen mag) ist
natürlich bei dem Entwurf und dem gesendeten Objekt verschieden.
UserField definieren ( in beiden Archiven _Drafts und _Out ), und in diesem Feld bei Email Erstellung MailItem ne ID sichern,
um diese dann aus dem Gesendeten Objekt auszulesen und so die Mail zu Identifizieren.
--> Gesendetes Objekt hat das UserField nicht --> problem
Das selbe in grün, diesmal nicht mit einem MailItem, sondern mit einem MessageItem2,
in der hoffnung, das dieses mehr kann (habe immernoch die #define MailItem-Weiche)
--> Natürlich nicht, immernoch kein UserField in der Gesendeten Mail --> problem
(UserFields werden wohl nicht "mitkopiert" )
Ein "ungenutztes" Field mit meiner ID füllen und dann in der Gesendeten auslesen,
(habe bei der erstellung in alle leeren Felder (MessageItem2 mit (is string und == String.Empty,
bzw. is int und == -1 oder 0)) gesschrieben, jedoch hatte das Gesendete MessageItem alle
Felder "zurueckgesetzt" --> Keine ID füer mich --> Problem
Mail mithilfe des Inhalts (Empfänger - HTML Text etc.) zu identifizieren
--> Kann ich nciht machen, der User kann den Entwurf überarbeiten --> problem
Was ich noch im Netz gelesen habe (und warum es nicht funktioniert):
Einfach das Item im _Out - Archiv nehmen, welches die "höchste" ID hat
--> danke, aber ich möchte nicht "die neuste" gesendete Email haben, sondern "meine" --> problem
Die Email nocheinam zusätzlich vor dem Versand in ein Archiv (möglichst selbst anlegen)
kopieren, und dann alle Emails in dem Archiv Serialisieren / überwachen
--> zum Einen verschiebt das nur das Problem (identifiziere NeuesArchiv.Mail mit _Out.Mail),
zum anderen möchte ich ja gerade nicht den Entwurf spreichern, sondern die gesendete
und moeglicherweise geaenderte Mail Speichern. --> problem
Was vielleicht Funktionieren könnte (was meint Ihr);
für jeden Benutzer in David (auch via API übrigens, wenns geht), einen "Schattenbenutzer" einrichten,
und diesem immer eine Kopie der Email zuschicken (bcc oder wie das heisst);
Sofern der User den Kopieempfänger nicht löscht, kann ich in dem
SchattenUser-Posteingang meine Emails finden, okay, ich muss die immernoch zuordnen,
aber ich bin einen Schritt weiter (keine "anderen" mails mehr)
--> Sehr viel Aufwand, Identifizierungs-Problem bleibt --> problem
Via JavaSkript das David-Menü erweitern, den (dann hoffentlich globalen)
daraus resultierenden "Mein-Senden"-Befehl bzw. Event abonieren,
und dann die "nächste" gesendete Mail speichern.
--> problem beim gleichzeitigen Senden Mehrerer mails
und das klingt recht aufwendig --> problem
Email nicht als Entwurf zum Versenden erstellen (und anzeigen)
sondern im Ausgang im Wartemodus.
--> Ich meine ich bekomme a) kein "gesendet" event, und
b) bin ich mir gerade nicht sicher, ob der User die Mail dann noch bearbeiten kann
--> Sollte ich mal durchprüfen
Meine ID nicht in ein Feld, sondern in die Mail schreiben (HTML-Content,
vielleicht als Kommentar oder Weiß auf weiß oder so [muss zugeben, mein HTML ist etwas eingerostet])
und dann die Gesendeten Mails daraufhin untersuchen
--> Der Benutzer kann die Mail ja überarbeiten,
aber falls ich "unsichtbare" Elemente nehme, hätte ich ne chance...
--> Das könnte vllt. wirklich klappen
Das Tobit-Team solange nerven, bis die die Möglichkeit schaffen,
bei UserFields, die in "beiden" Archiven existieren, diese auch zu "kopieren",
möglichst inklusive inhalt (wobei mir erstmal der Name des Feldes genügte)
--> Eher Unwahrscheinlich, aber warum ist das zurzeit nicht so?
Job kündigen, bei Tobit anheuern, hocharbeiten,
selber die eben besprochene Funktion implementieren,
kündigen, wieder anfangen wo ich nun arbeite
--> Könnte klappen, ist aber etwas umständlich, und sehr
zeitaufwendig
Fazit:
Problem bleibt ungelöst, und ich bin für jede Eingebung dankbar.
Dabei muss es sich nicht um Code an sich handeln, ein guter Weg
ist mir ebenso wilkommen.
Falls es bereits eine Lösung geben sollte, bitte ich um Gnade für
den DoppelThread (habe die Forensuche vor erstellung bemüht).
Ich glaube ich kann nicht der erste sein mit diesem Problem,
vermutlich ist die Lösung viel, viel einfacher als ich denke.
tl;dr
Brauche Hilfe bei der Identifizierung gesendeter Mails zu Erstellten Entwürfen.
David 'kopiert' die UserFields wohl beim Senden nicht aus den Entwürfen.
MfG, Mathias.
p.s.: sry für die vielen TrollFace - war wohl zu lange auf 9gag gestern.