"mailto" und Textlänge ???

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    "mailto" und Textlänge ???

    Hi!

    Ich hab eine Anwendung die per Shell eine Email verschickt:

    ok = ShellExecute(hwnd, "open", "mailto:" & mailadr & _
    "?cc=" & "" & "&bcc=" & "" & _
    "&subject=" & "Ihre Nachricht" & _
    "&body=" & mailtext, vbNullString, vbNullString, SW_SHOW)

    Leider musste ich nun feststellen, dass die Länge für den Mailtext begrenzt ist auf ca. 1950 Zeichen. Ist der Text länger, startet mein Emailclient erst gar nicht und auch VB6 gibt keine Fehlermeldung aus. Hat jemand eine Idee wie ich das erweitern kann? Strings dürfen doch wesentlich länger sein, woher also kommt die Beschränkung.

    Danke. Hein
    Nun das liegt sicher u.a. daran, dass die Commandozeile nicht dafür gedacht ist, 1950 Zeichen sind ja schon eine Menge als Parameter.

    Ich würde dir raten entweder einen SMTP-Client einzubauen oder direkt auf eine Mail-Client Instanz zuzugreifen.
    Nunja, aber mailto ist nicht dafür da den Mail-Client zu starten und ihm eine komplett fertige E-Mail zu übergeben *g* sondern einfach den Mail-Client starten und gleich eine Ziel Adresse eingeben. Betreff usw. ist nur ein nützlicher Zusatz, den aber auch nicht jedes Mailprogramm unterstützen muss.

    Den Standardclient kannst du auch über die Registry herausbekommen.
    Ich würde es folgendermaßen machen:

    1. Über die Registry den Standard Client ausfindig machen und starten (ggf. mit Parametern für E-Mail und Betreff)
    2. Handle ermitteln
    (2a. Button für Neue E-Mail ermitteln und "drücken" SendMessage())
    3. Ebenfalls SendMessage nutzen um in das Textfeld des Mailformulars den entsprechenden Text einzutragen

    Aber dafür müsstest dich etwas intensiver mit WinAPI auseinander setzten und für die häufigsten Mail-Clients eine Methode zum eintragen entwickeln, weil nicht alle gleich aufgebaut sind.