Mail senden und gleich als EML-Datei speichern

  • Hallo Zusammen,
    folgendes Problem:
    Ich würde gerne mittels C# eine Mail senden (dazu verwende ich MailItem.Send(...)) und dann gleich als EML-Datei speichern (mittels API-Befehl DVEmlFromMailItem). Für DVEmlFromMailItem verwende ich das vorher erstellte MailItem-Objekt.
    Leider bekomme ich eine Fehlermeldung: Es wurde versucht, im geschützten Speicher zu leisen oder zu schreiben...
    Auch ist die MailItem-ID nach dem Send-Befehl noch -1, somit kann ich später nicht auf das MailItem per Iteration zugreifen.
    Hat irgendwer eine Idee?
    Lg, Hans Peter
    Programmiersprache C#
    David.FX 11
    DvISE API 11.00a 275

  • Hallo Hans Peter,


    ein Codebeispiel wäre sicher hilfreich.


    Kann es sein, dass der Fehler mit der Tatsache zu tun hat, dass die Nachricht in dem Moment noch nicht erzeugt wurde (keine ID, etc.)?


    Versuche doch mal, die Nachricht nach dem Versand einzulesen und dann zu exportieren.
    Du musst Dir halt was überlegen, wie Du die Nachricht "wiedererkennst".


    Alternativ mal versuchen vor dem Versenden speichern, exportieren (dann senden) und löschen.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hallo Jens,
    hier mal der Code:


    Deine Vorschläge probier ich dann gleich. Leider kann man auch nicht auf die "Fields" zugreifen, da die Value immer "NULL" ist :(
    Lg, Hans Peter

  • Hallo Hans Peter,


    welcher Teil davon genau wirft die Fehlermeldung?


    Schon das mailItem.Send oder erst die DvEmlFromMailItem Methode?
    Ich vermute mal letzteres, richtig? Problem dürfte hier wie gesagt sein, dass bei der .Send Methode nur ein temporäres Mailitem vorhanden ist, Du benötigst aber eines aus dem FileSystem.


    Da bleibt nur das oben erwähnte, also entweder erst speichern, exportieren und dann löschen oder nach dem .Send versuchen das Item zu "finden", z.B. indem Du das Item mit der höchsten ID im Ordner ausliest (ist natürlich so ne Sache, wenn zur gleichen Zeit noch etwas versendet wird).
    Alternativ könntest Du ne Kopie in einem anderen Ordner, einem Arbeitsverzeichnis speichern und die Nachricht nach dem Export löschen.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hallo Jens,


    sorry wegen der späten Antwort.
    Hatte extremen Stress und bin erst jetzt zu der Implementierung gekommen.


    Meine Lösung ist nun die Mail in einem "Archivordner" zu speichern und dann zu senden. Später exportiere und lösche ich alle Mails vom "Archivordner".
    Nicht die optimale Lösung, aber sie funktioniert.


    Danke nochmals für deine Hilfe!


    Gruß, Hans Peter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!