Announcement

Collapse
No announcement yet.

Shellexecute [Mail mit Anhang]

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Shellexecute [Mail mit Anhang]

    Liebe entwicklerforum Community,

    derzeitig geht es darum ein Programm zum versenden von Mails zu entwickeln. Dieses soll die Mails allerdings nicht von alleine (egal ob manuell oder automatisch) versendet sondern das Standart-Mail Programm des Arbeitsplatzes nutzen. Im besten Falle sollte die Mail vorerst auch angezeigt werden(im Mail Client) und nicht automatisch versendet.

    Folgendes habe ich Bereits versucht:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: String;
    begin
    s := 'mailto:[email protected]?Subject=Danke&Body=Hallo&Attach=""C:\Test.txt""';
    ShellExecute(handle, 'open', PChar(s), nil, nil, SW_SHOWNORMAL);
    end;
    Allerdings funktionierte dies nicht. (Meldung von Outlook: 'Das Befehlszeilenargument in ungültig. Überprüfen sie den verwendeten Befehl') Wenn ich den Teil für den Anhang entnehme (&Attach=""C:\Test.txt"") funktioniert alles.

    Kann mir jemand weiter helfen? Das ganze selbstständig heraus zu finden bzw. mit Hilfe von Google habe ich schon eine lange Zeit versucht.

    Danke im Voraus


    Grüße
    Patrick

  • #2
    Wie solle es dafür eine einzige Lösung geben?
    Wenn es schon sauber programmiert werden soll, dann wird die eMail über einen Mailserverversandt.
    Es gibt verschiedene Mailclients (Winmail, Outlook, Thunderbird, Bats u.v.m). Dann wäre erstmal herauszufinden, welcher genutzt wird. Dann ist zu prüfen, ob die Kommandozeilenargumente überhaupt einen Versandt eines Anhanges zulassen (Implementierung von mailto). Dann den Aufruf je nach Mailclient gestalten. Keine sauberre und zukunftsfähige Lösung. Fürs erste würde ich die doppelten " entfernen oder entwerten
    Christian

    Comment


    • #3
      Hallo,
      1. Es handeld sich dabei um den David-Client [Mail-Client]
      2. Dieses Programm wird nur an einem bestimmten Platz verwendet auf dem genau dieses E-Mail Programm läuft, aus dem Grunde wird eine berücksichtigung der anderen nicht von Nöten sein.
      3. Ja, das habe ich bereits entfernt ist mir wenige Sekunden nach dem Post aufgefallen.

      Comment


      • #4
        1. Es handeld sich dabei um den David-Client [Mail-Client]
        Das ist jetzt nicht gerade was gängiges und ich würde dich da am ehesten direkt an Tobit verweisen (Tobit Kenner werden sich da jetzt vermutlich gerade schlapp lachen) und der Dokumentation zur eventuell vorhanden API des Client bzw. der Doku wie man das mailto Protokol mit dem David Client nutzt. Übrigens wenn du es für David brauchst solltest du es nicht mit Outlook probieren das hilft nicht.

        Comment


        • #5
          Stichwort ist hier (Simple) MAPI. Darüber kannst du auch Anhänge mitgeben.

          In der JCL (https://github.com/project-jedi/jcl) gibts entsprechende Klassen die das Kapseln und bei korrekter Implementierung des Mail-Clients auch funktionieren.

          Comment


          • #6
            Kann man per MAPI den Mailclient öffnen? Er möchte ja nicht versenden sondern die Mail in einem Mail Client öffnen damit der Benutzer dann die Mail selbst sendet.

            Comment


            • #7
              Direktes Verwenden per MAPI ist nicht möglich (jedenfalls seit dem ILOVEYOU-Wurm nicht mehr). Der Nutzer sieht immer die Mail und muss sie immer selbst absenden.

              Comment

              Working...
              X