Text an neue Mail übergeben

  • Hallo,


    ich habe Thunderbird 3.1.11 installiert mit IMAP. Ist es möglich, wenn man aus einem anderen Programm heraus durch einen Klick auf einen E-Mail Namen eine neue Mail öffnet, bereits Betreff und Text, ggf. auch Anhänge, an Thunderbird zu übergeben?


    Ich könnte z.B. aus meiner DB-App heraus die Thunderbird Variablen ansprechen und befüllen.


    Gruß
    K.-D.

  • Soweit funktioniert das schon. Leider steht der Text von body aber unter der Signatur. Wie bekomme ich das denn wohl gelöst?


    K.-D.


  • Das geht über den mailto: Link
    Den kann man über verschiedene Parameter für Empfänger, Betreff und Text vorbelegen.
    Anhänge gehen meines Wissens nach nicht


    Gruß
    Uwe

  • Hallo,


    finde leider in den Aufrufparametern nichts drüber, wie man eine andere Absenderadresse voreinstellen kann.


    Ich arbeite mit derzeit mit Version 45.2.0 und erzeuge in meiner Software den kompletten Mailtext mit allen Parametern, den ich dann automatisch an Thunderbird übergebe. Da ich je nach Anwendungsbereich mit unterschiedlichen Absenderadressen arbeite, würde ich die auch gern voreinstellen. In den Aufrufparametern finde ich nur die Übergabe von TO und CC.


    Gruß
    K.-D.

  • Hallo,


    jetzt hast du versäumt zu erwähnen, ob du mit "mailto", oder mit dem Kommandozeilenparameter "-compose" arbeitest?



    mailto
    Mailto sieht an sich keine Absenderadresse vor (das gibt das Prokooll einfach nicht her. Ist ja an sich auch dafür gedacht dass ein Unbekannter auf einen Link klickt und dadurch eine E-Mail mit seinem unbekannten Standardemailprogramm an einen bekannten Empfänger kreiert. Da macht eine bestimmte Absenderadresse natürlich keinen Sinn.).
    Dennoch kann man Thunderbird die Arbeit machen lassen:
    Ich habe auch verschiedene E-Mailadressen und lasse vom Addon VirtualIdentity automatisch die dem Empfänger zugeordnete Absenderadresse / Konto / Identität eintragen.


    Jetzt habe ich das gerade im Zusammenspiel mit mailto getestet: bei meinen Einstellungen von VirtualIdentity wird - wenn eine E-Mail mit mailto erzeugt wird - die richtige Absenderadresse von VirtualIdentity ausgewählt und eingetragen.
    Allerdings mit einer Einschränkung: Die E-Mailadresse muss so in das An-Feld eingetragen werden, wie VirtualIdentity sie kennt:
    Max Mustermann <max.mustermann@example.com>
    könnte so eine Adresse sein.
    Mit mailto:max.mustermann@example.com funktioniert es nicht. Es muss
    mailto:Max%20Mustermann%20<max.mustermann@example.com>
    lauten. Aber vielleicht hängt das auch mit meinen Einstellungen bei VirtualIdentity zusammen? Da habe ich jetzt nicht auch noch rumgespielt.
    Du weißt, dass mailto ein URL-encoding erwartet?!


    Ich glaube es gibt ach andere AddOns, die das richtige Absenderkonto raussuchen (ich meine, eines heißt "CorrectIdentity", bin mir aber nicht sicher). Da VirtualIdentity sehr viele Features hat, würde ich es in einem Testprofil ausprobieren.



    Kommandozeile mit -compose
    keine Ahnung ;) ?!



    Grüße, Ulrich


    [edit: es gibt natürlich noch Kommandozeilen basierende Alternativen. Unter Win wäre da z.B. "blat.exe" zu nennen.
    Ich weiß ja nicht, in welcher Sprache du programmierst. Es gibt auch windowseigene Funktionalitäten, mit denen man E-Mails versenden kann:
    http://www.rondebruin.nl/win/s1/cdo.htm
    Welches Betriebssystem verwendest du?

    Edited 3 times, last by losgehts ().

  • ich arbeite da mit -compose.


    Ist Windows 10 Prof. Die Anwendersoftware ist in Delphi geschrieben. Man kann da mit Komponenten wie z.B. Indy auch Mails direkt verschicken. Die tauchen dann aber in Thunderbird nicht auf. Wenn jemand auf so eine Mail antwortet, landet die Antwort wieder in dem IMAP Konto. Bin mir jetzt nicht ganz sicher, ob man eine mit Indy versandte Mail auch in den eigenen Ausgang bei IMAP bekommt. Dann wäre es nicht schlecht. Es ist aber zwingend, daß alles durchgehend protokolliert ist, bzw. Mailverläufe nachvollziehbar sind (Aufbewahrungspflicht). In einer von mir entwickelten Software werden Logindaten an mich via Indy versandt. Da ist aber niemals eine Antwortmail zu erwarten. Das geht aus dem Delphi-Client über SMTP und wird bei mir via POP3 eingesammelt. Der gesamte normale Emailverkehr geht aber über IMAP.


    K.-D.

    Edited once, last by kdf ().

  • Hallo kdf,


    da du bisher noch nicht nachgefragt hast, gehe ich davon aus, dass du weißt, was ein AddOn ist. Falls du das nicht weißt einfach die Suche benutzen und evtl. nachfragen.



    Soweit ich weiß, kannst du über die Kommandozeile mit "-compose" nicht bestimmen, welche Absenderadresse verwendet werden soll.



    Deswegen habe ich dir einen Alternativweg aufgezeigt.


    Wie ich dir in diesem Thema in Post 7 versucht habe zu erklären, gibt es ein AddOn, das folgendes macht:
    Habe ich ein Mal eine E-Mail an eine andere Adresse versendet, merkt sich das AddOn mit welcher Absenderadresse ich an welche Empfängeradresse gesendet habe.
    Wenn ich das nächste Mal eine E-Mail schreibe und in das An-Feld die selbe Empfängeradresse eingebe, sucht das AddOn in seinem Speicher die richtige Absenderadresse raus und trägt sie automatisch in die E-Mail ein. Ich benutze dazu das AddOn VirtualIdentity *).


    Wenn du dieses AddOn installiert hast und und mit -compose eine E-Mail kreierst, sorgt das AddOn dafür, dass die richtige Absenderadresse eingetragen wird.
    Das funktioniert nur unter folgenden Voraussetzungen:
    1.) Der Empfänger muss dem AddOn bekannt sein (also du musst einmal nach der Installation des AddOns eine E-Mail an den Empfänger gesendet haben)
    2.) Das, was im An-Feld steht muss genau so aussehen, wie wenn du es von Hand eingetragen hättest (das habe ich im Post 7 mit Beispiel versucht zu erklären). Evtl. kann man aber auch etwas an den Einstellungen von VirtualIdentity ändern, habe ich jetzt aber für dich nicht auch noch getestet.



    Die Idee (-compose + Thunderbird + Virtualidentity) habe ich gerade bei mir zwei Mal getestet. Bei beiden Versuchen hat es geklappt.



    Wenn du diesen Weg ausprobieren möchtest musst du also

    • dich entscheiden, ob du Correct Identity verwenden möchtest (das habe ich ja nicht getestet, ist aber wahrscheinlich wesentlich einfacher in der Konfiguration) oder ob es Virtual Identity sein soll.
    • Eine Sicherung deines Profilordners anlegen (macht man immer vor Experimenten), oder ein Testprofil einrichten
    • Das AddOn (VirtualIdentity oder Correct Identity) installieren und einrichten
    • Dem Addon beibringen, welche Absenderadresse zu welcher Empfängeradresse gehört
    • Das Zusammenspiel von Thunderbird + AddOn + deineSoftware testen.


    Zu Punkt 4:
    Bei mir merkt sich Virtual Identity den Zusammenhang zwischen Absenderadresse und Empfängeradresse beim Absenden einer E-Mail. Damit du jetzt nicht wirklich E-Mails versenden musst, aber dennoch die entsprechenden Infos in den Speicher von Virtual Identity bekommst, kannst du den Rechner einfach vom Internet trennen und dann auf Senden klicken. Das hat zur Folge, dass VitrualIdentity sich den Absender/Empfänger merkt und keine E-Mail versendet wird.



    Wieso willst du eigentlich hierfür Thunderbird benutzen? Thunderbird ist dazu gemacht, dass ein Mensch ihn bedient. Es gibt andere Programme, die für eine Automation programmiert wurden (um dir da etwas zu empfehlen, müsste man mal wissen, in welcher Sprache du programmierst und auf welchem Betriebssystem das laufen soll). Viele Programmiersprachen haben Bibliotheken, die von sich aus eine E-Mail verschicken können - ganz ohne Thunderbird. Wäre das eine Lösung für dich?


    Grüße, Ulrich



    *) Das AddOn Virtual Identity kann noch sehr viel mehr, ist dementsprechend komplex und ich glaube es wäre besser ein einfacheres zu verwenden. Correct Identity wäre ein solches. Ich habe Correct Identity aber noch nie benutzt und kann dir daher nicht sagen, ob es zusammen mit -compose klappt.

  • Hallo Ulrich,


    hatte ich aber zuvor schon in Thread 8 geschrieben. Für die Entwicklung eigener Software nutze ich Delphi. Mit den sehr umfangreichen Indy Komponenten kann man vieles bauen.


    Das Problem, wie zuvor auch schon beschrieben, eine automatisch mit Indy über SMTP versandte Mail landet nicht im IMAP Ordner gesendete Objekte. Antwortet jemand auf so eine Mail, fehlt der Zusammenhang. Sofern man aber die automatische SMTP-Mail im Ordner gesendete Objekte ablegen könnte, wäre es optimal. Die AddOns sind dafür nicht zu gebrauchen. Es geht immer um die Auswahl der Absenderadresse in Abhängigkeit von der Art des Vorgangs, nicht abhängig vom Empfänger. Wenn man das Problem mit der fehlenden versendeten Mail im IMAP Ordner gesendete Objekte lösen kann, ist diese Option allemal besser. Dann benötigt man für diesen Standardversand aus einem WWS-System keinen Mailclient mehr. Mit dem WWS kann man ja sehr schön personalisierte Mails mit allen Details blind versenden, oder sich auch vor dem Versand noch zur Kontrolle anzeigen lassen. Wäre sehr komfortabel.


    K.-D.

  • Hallo K.-D.,


    wenn die vorhandenen Komponenten in Delphi Funktionen bereitstellen, direkt mit dem IMAP-Server zu kommunizieren, also eine Imaplib* oder so, dann könntest Du die E-Mail entweder direkt dort hochladen oder über move oder copy erledigen. Siehe z.B. RFC 6851.


    Gruß


    Susanne


    (*)
    Ich kenne mich in Delphi nicht aus. In Java ginge das über Folder.appendMessages(javax.mail.Message[])

    Edited once, last by SusiTux ().

  • Hallo,


    Quote

    hatte ich aber zuvor schon in Thread 8 geschrieben. [...]

    Ja, verarschen kann ich mich selbst. Als ich deinen Beitrag 8 gelesen habe, bestand der aus genau einer Zeile:

    Quote

    ich arbeite da mit -compose.

    ich hatte sogar schon geantwortet, als du deinen Beitrag editiert hast. auf solche "Späßchen" habe ich wirklich keine Lust.



    Ich habe mit Delphi keine Erfahrung, aber die Suchmaschinen bringen vielversprechende Ergebnisse, wenn ich nach
    delphi imap send email
    suche.


    Ich würde an deiner Stelle da nichts mit Thunderbird machen: nach dem -compose - Kommando muss die E-mail ja noch von Hand versendet werden (oder liege ich da falsch?) das bedeutet für mich: eine Automation ist also überhaupt nicht möglich.


    Wenn du keine geeignete Bibliothek findest, würde ich mich einfach an ein Delphi-Forum wenden. Wie Susanne ja bereits gesagt hat, könntest du mit SMTP senden und mit IMAP eine Kopie in dein "Gesendet-Ordner" ablegen.
    Oder du könntest (weil ich es bereits verwendet habe, fällt mir das ein) auf das Kommandozeilenprogramm blat.exe zurückgreifen.
    blat.exe verwendest du wie "thunderbird.exe -compose", lediglich sind die Parameter natürlich etwas anders. Damit kannst du jeden beliebigen SMTP-Server verwenden (jede beliebige E-Mailadresse).
    [edit: blat.exe sendet natürlich nur, es entsteht dabei keine Kopie der gesendeten Nachricht auf dem Server (Gesendet-Ordner)]




    Da du ja angeblich bereits senden kannst, könntest du es auch dabei belassen:
    Das Problem, dass dir die gesendete E-Mail fehlt, könnte man dadurch erledigen, dass du dich selbst in BCC setzt. Dann hast du die E-Mail bereits im Posteingang (und damit die Garantie, dass der SMTP-Server die E-Mail angenommen und zumindest zu dir versendet hat). Jetzt noch ein Filter beim E-Mailprovider oder in Thunderbird erstellt, und die entsprechenden eintreffenden E-Mails werden automatisch als gelesen markiert und in den Ordner "Gesendet" verschoben.
    Damit das mit dem Filter richtig gut geht (und auch aus anderen Gründen bzw. für spätere Zwecke), würde ich mindestens eine X-Header-Zeile im Header hinzufügen.


    Grüße, Ulrich

    Edited once, last by losgehts ().

  • Hallo Susanne,


    ich habe mit Java noch nichts gemacht. Delphi geht im Schlaf. Die gesamte eigene Software ist in Delphi geschrieben. Als ich das mit SMTP gemacht habe, gab es bei den Indy-Komponenten noch keine IMAP. Heute, in Version 9, sind das rund 120 Komponenten und es ist jetzt auch IMAP4 dabei.


    Hallo Ulrich,


    die Editierfunktion ist ja da um benutzt zu werden. Ich habe da noch keine Antwort gesehen. Sieh es mir nach :)


    Die Option mit -compose ist ja fertig. Es ist natürlich richtig, von wirklicher Automatisierung kann da keine Rede sein. Ich habe mir da in Delphi, wo die Texte zusammen gebaut werden, ein System mit Variablen erstellt, wo aus der Firebird-DB beliebige Daten eingemischt werden. Das ist schon eine große Erleichterung. Wenn das dann an Thunderbird übergeben wird, kann man nochmals drüber schauen oder noch etwas anpassen, wenn der Textbaustein nicht genau passt. Die andere Option mit der Indy SMTP Komponente ist natürlich viel flexibler. Das läuft so auch schon seit Jahren. Wie oben geschrieben, gab es da noch meine IMAP Komponente, die jetzt aber dabei ist. Werde mir diese mal genauer anschauen und darauf aufbauen oder einfach BCC benutzen. Da war ich noch nicht drauf gekommen. Wahrscheinlich die einfachste Lösung.


    Bis dahin erstmal vielen Dank an euch.


    Was ich noch benötige ist ein Autotransponder, der nicht wie vielfach von Providern als Abwesenheitsnotiz angeboten, nur einmal innerhalb 24 Stunden einmal ausgefährt wird, sondern immer. Ist ja nicht so einfach, weil man damit eine Schleife produzieren kann. Teilweise werden da ja Adressen benutzt, wie z.B. no_reply@ oder ähnlich. Das ist aber keine Lösung, da dies vom Versender kommt. Es muß mit jeder normalen Adresse funktionieren nach dem Modell 'Ihre eMail ist hier AM UM angekommen und befindet sich in Bearbeitung'. Habe das mal versucht mit Thunderbird über Filter zu implementieren. Das Problem dabei ist, wenn die Mail von einer Adresse kommt, wo nicht erkennbar ist, dass dort ein Autoresponder benutzt wird, beantworten die beiden sich immer wieder gegenseitig, dass eine Mail angekommen ist. Den Filter kann man ja nur setzen auf noreply oder ähnliche Sequenzen in der Adresse.


    Gruß
    K.-D.

  • Hallo,


    einen Autoresponder mit Thunderbird "zu basteln" scheint mir keine so gute Idee. Allein schon wegen der von dir bereits wahrgenommenen Gefahr der Schleife.


    Autoresponder sind allgemein schon eine etwas "heikle" Sache: zum einen sind sie nicht ausreichend standardisiert, zum anderen (eher eine Folge aus ersterem) scheint da jeder sein eigenes Süppchen zu kochen. Wenn du dich dann auch noch an die Handschellen der Filterfunktion kettest ...


    Ich würde das an deiner Stelle wirklich nicht machen!


    Quote

    Das Problem dabei ist, wenn die Mail von einer Adresse kommt, wo nicht erkennbar ist, dass dort ein Autoresponder benutzt wird, beantworten die beiden sich immer wieder gegenseitig, dass eine Mail angekommen ist. Den Filter kann man ja nur setzen auf noreply oder ähnliche Sequenzen in der Adresse.

    Das ist ganz grundsätzlich auch ohne Thunderbird das Problem: woran erkennt man eine automatisch generierte Antwort?


    Du kannst natürlich so eine Filtersache probieren:
    wenn Precedence enthält nicht bulk
    und wenn Reply-To ist nicht <>
    und wenn Reply-To ist nicht [leer] (<= geht das überhaupt?)
    und wenn Auto-Submitted ist nicht auto-replied
    und wenn Auto-Submitted ist nicht auto-generated
    doch mir wäre das zu wenig.



    Falls du es nicht bereits getan hast, solltest du dich unbedingt mit den entsprechenden RFCs (u.a. 3834) und weiteren Empfehlungen auseinandersetzen, bevor du so ein System "auf das Netz loslässt".



    Ganz wichtig ist IHMO zunächst das Auswerten der Headerzeilen
    Reply-To / Auto-Submitted / In-Reply-To / List / List-Id / Precedence
    um zu entscheiden, ob überhaupt geantwortet werden soll.
    Und dann in der automatischen Antwort das bewusste Setzen der Headerzeilen
    Auto-Submitted: auto-replied
    Reply-To: <>
    X-Envelope-Sender:
    (das bitte nicht als Anleitung oder vollständige Liste verstehen: ich habe bisher noch keinen Autoresponder versucht zu programmieren, und damit auch keine Erfahrung).
    Und das würde ich dann programmieren, oder schauen, ob es da nicht bereits was gibt.



    Ist es nicht auch so, dass ein Autoresponder auf die "X-Envelope-Sender:" Adresse senden sollte (natürlich nur sofern vorhanden), statt an die Reply-To? Ich weiß es nicht.



    Soweit ich weiß, bekommst du das nicht mit Thunderbird hin. Du müsstest Thunderbird schon irgendwie sehr verbiegen, um ihn dazu zu bewegen, die richtigen Headerzeilen in die E-Mail zu schreiben. Wenn das jetzt immer die selben wären, wäre das ja noch einfach, aber bei dir sind die ja von der empfangenen E-Mail abhängig. Keine Ahnung, ob du da mit irgendwelchen AddOns glücklich wirst.



    Ich rate ab, Thunderbird als Autoresponder zu verwenden.


    Gibt es für sowas vielleicht eine andere Software?
    Meiner Meinung nach sollte das optimaler Weise auf dem Mailserver erledigt werden.


    Wegen der Entscheidung, ob autoresponse senden, oder nicht: ich meine mich zu erinnern, dass das Rechenzentrum der www.Ruhr-Uni-Bochum.de auf ihrer Homepage deren Strategie beschrieben hätte, wie sie das bei Urlaubsnotizen entscheiden. Habs aber gerade auf die Schnelle nicht gefunden.


    Interessieren würde mich, für welche Software / Lösung du dich entschieden hast; würde mich also freuen, wenn du es kurz mitteilst.


    Grüße, Ulrich

  • Hallo,


    habe mir eben die IMAP Komponente angesehen. Die Performance ist nicht gut. Ich werde den Versand mit dieser SMTP-Version machen, eine Kopie an mich senden und über einen Filter in gesendete Objekte verschieben.


    Der Autoresponder lege ich zunächst wieder auf Eis.


    Gruß
    K.-D.

  • Mit der schlechten Performance liegt wohl an der Datenmenge. Wenn man mit der IMAP Komponente ein Postfach öffnet, werden alle Mailheader in eine Stringliste geladen. Das sind ggf. etliche tausend. Wenn man das für den normalen Gebrauch programmiert, würde man die Header in eine Datenbank schreiben und ein Flag setzen für geladen. Es würden ja dann nur noch Header geladen, die nicht schon da sind. Ist ja das gleich Spiel, als wenn man Thunderbird auf einem neuen Rechner installiert und der zieht erstmal alle Postfächer komplett runter. Man muß das Rad nicht neu erfinden, indem man jetzt einen komplett neuen Mailclient schreibt. Thunderbird ist ja fertig und funktioniert. Die Lösung, aus der Delphi-App via SMTP senden mit Kopie an mich und die Kopie dann mit Filter in gesendete Objekte verschieben ist viel schlanker. Allerdings funktioniert das ja nur, wenn Thunderbird auch läuft. Ich werde mal nach einem Weg suchen, die Kopie doch mit Delphi zu verschieben. Werde mal im Delphi Forum fragen.


    Gruß
    K.-D.