Softwareentwicklung mit Delphi

Softwareentwicklung mit Delphi

Posts 1-6 of 6
  • André Brosda
    André Brosda    Premium Member
    The company name is only visible to registered members.
    Mail nach dem Senden Abspeichern
    Hmmm der Titel sagt jetzt alles und nichts....
    Ich will eine Mail aus einem Programm heraus verfassen und die gesendete Mail für Dokumentationszwecke in eine Datenbank speichern.

    Senden tut das Programm, sowohl Notes als auch Outlook geht, irgendwie fehlt mir aber heute der richtige Gedanke um das "Henne-Ei" Problem zu lösen:
    Die gesendete Email soll so wie Outlook bzw Notes sie verschickt gespeichert werden, also wenn möglich als msg Objekt. Ich tute mich da nur schwer mit, weil, wie soll ich die Mail nach dem Senden wieder finden?
    Oder geht das eleganter
  • Hans Lesmeister
    Hans Lesmeister    Premium Member
    The company name is only visible to registered members.
    Re: Mail nach dem Senden Abspeichern
    Hallo André,

    Senden tut das Programm, sowohl Notes als auch Outlook geht,
    Wie versendest Du die Mail? Öffnest Du den Mail-Client und der User klickt auf Senden oder schickst Du die verfasste Mail direkt an den Mailserver?

    Wenn Client sehe ich da auch schwarz. Bei Server kannst Du sicherlich die Mail über die ID wieder zu fassen kriegen. Wenn das nicht mit dem Mail-API geht, dann zum Beispiel in dem Du eine Kopie an ein spezielles Postfach schickst, dass Du dann wieder ausliest (ist ein bisschen von hinten durch die Brust). Dieses spezielle Postfach kann natürlich auch in einem lokalen Mailserver wie z.B. Apache-James liegen (Der James könnte sogar im Selben Container laufen wie Deine Anwendung)


    Viele laute Gedanken, aber vielleicht gibt es einen Denkanstoß :-)

    Gruß
    Hans
  • Hans Lesmeister
    Hans Lesmeister    Premium Member
    The company name is only visible to registered members.
    Re^2: Mail nach dem Senden Abspeichern
    Nachtrag: wenn Du eine Kopie an einen James-Instanz schickst, hast Du Dein Ziel vielleicht sogar schon erreicht, denn James speichert die eingehenden Mails als msg-File in einem Verzeichnis. Du müsstest dann nur noch die generierte Mail-ID verwalten um damit evt. später auf die gespeicherte Mail zurückgreifen zu können.
  • André Brosda
    André Brosda    Premium Member
    The company name is only visible to registered members.
    Re^3: Mail nach dem Senden Abspeichern
    Na ja die Mail wird gar nicht mit Delphi versand *hust* Sondern aus Powerbuilder heraus mittels Outlook/Notes, die Problematik ist aber die gleiche. Der Mail-senden Dialog von Outlook geht "natürlich" nicht auf, die Mail erscheint erst bei Draft bzw Ausgang und wird dann von Outlook brav in gesendet abgelegt.
    Ich denke mir bleibt nur der Weg, die Mail nach dem Senden zu suchen.
  • Michael Warreyn
    Michael Warreyn    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^4: Mail nach dem Senden Abspeichern
    Hallo Herr Brosda,

    hatte mal ein ähnliches Problem. Damals habe ich aber den Benutzer mit Outlook die Email erstellen lassen. Es gab da noch den Trick, die Email erst zu speichern und sie dann erst Modal anzuzeigen. Den genauen Grund für diese Vorgehensweise müsste ich erst im Quellcode suchen, aber ich glaube vorher hatte die Email noch gar keine ID bekommen. Nach dem Senden hatte dann aber das MailItem wiede eine neue ID bekommen. Sie können aber eine eigene ID vergeben und diese beim Mailitem abspeichern. Da gibt es eine Property Collection, heißt soweit ich mich erinnern kann sowas wie "CustomProperties". Bedenken Sie auch, dass es ein wenig dauern kann, bis die Email in Sent Items auftaucht.

    Viele Grüße,

    Michael Warreyn
  • André Brosda
    André Brosda    Premium Member
    The company name is only visible to registered members.
    Re^5: Mail nach dem Senden Abspeichern
    Inzwischen habe ich mich wieder mit dem Problem beschäftigt und eine einfache Lösung gefunden.
    In Powerbuilder wird über OLE mit Outlook kommuniziert, aber über reines COM muss es auch gehen.


    Nach dem Senden der Mail wird ein

    a_MailItem.SaveAs( "Dateiname", SaveAsType ) aufgerufen.

    SaveAsType ist dabei:

    Constant Integer olTXT = 0
    Constant Integer olRTF = 1
    Constant Integer olTemplate = 2
    Constant Integer olMSG = 3
    Constant Integer olDoc = 4
    Constant Integer olHTML = 5
    Constant Integer olVCard = 6
    Constant Integer olVCal = 7

    Powerbuilder hat leider eine etwas andere Schreibweise als Delphi, aber ich denke es ist verständlich....