Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mit Shellexecute eMail senden, Body < 2023 Zeichen? (https://www.delphipraxis.net/3346-mit-shellexecute-email-senden-body-2023-zeichen.html)

APP 7. Mär 2003 19:56


Mit Shellexecute eMail senden, Body < 2023 Zeichen?
 
Hallo,
ich bin auf ein seltsames Phänomen gestoßen,
wenn ich eine eMail mit dem Standard-eMail-Clienten versenden möchte


Delphi-Quellcode:
aMessage := 'mailto:' + 'a@aaaaaaaaaaaaaaaaaaaaaaaaaa.com' + '?subject=' +  Application.Title+'+ '&body=' + Trim(Memo1.Text);
...
ShellExecute(0, PChar('open'), PChar(aMessage), NIL, NIL, SW_SHOWNORMAL);
darf aMessage nicht größer als 2023 (0-2022) Zeichen sein.
Ist irgendwie ein krummer Wert für mich (2k = 2048), weiß jemand warum das so ist?
Gibt es eine Lösung, um mit Shellexecute längere Texte zu versenden?

(MAPI taugt mir nicht, da der Mail-Client immer geöffnet sein muß um zu senden.)

Daniel B 7. Mär 2003 20:04

Hallo,

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  aMessage: String;
begin
  aMessage := 'mailto:' + 'a@aaaaaaaaaaaaaaaaaaaaaaaaaa.com' + '?subject=' +
    Application.Title + '&body=' + Trim('ddddddddddd[...ganz viele 'd'...]dddddd');
ShellExecute(0, 'open', PChar(aMessage), NIL, NIL, SW_SHOWNORMAL);
end;
Sowas kann ich senden. Aber, Deine Meldung bekomme ich nicht. Wenn cih aber zu viele d schriebe, dann motzt der Kompiler das String nur 255 Zeichen haben darf. Aber so kann ich nciht kompilieren.
Von welchem Typ ist den aMessage bei Dir?

Grüsse, Daniel :hi:


[edit=Admin]Habe die Code-Zeile verkürzt, da sie das Topic zu start verbreiterte. Mfg. Daniel[/edit]

toms 7. Mär 2003 20:28

Zitat:

Gibt es eine Lösung, um mit Shellexecute längere Texte zu versenden?
Nein, glaube nicht.

Daniel B 7. Mär 2003 20:30

Hmm, wäre es nicht einfacher die Memo in eine TextFile zu speichern und die Datei zu versenden?
Grüsse, Daniel :hi:

APP 8. Mär 2003 10:39

@Daniel B
aMessage besteht unter anderem aus Memo1.Text und ist vom Typ String.

An die File-Lösung dachte ich auch schon, mir ist aber keine Lösung mit ShcellExecute eingefallen, mit der ich ein File versenden kann.

Christian Seehase 8. Mär 2003 12:40

Moin Zusammen,

ich hab's auch mal ausprobiert. Ergebnis:

Länge von aMessage
bis 2071 Zeichen : OK
2072 bis 2083 Zeichen: Es passiert nichts.
2084 bis 2086 Zeichen: AC in der Shell32.dll an drei verschiedenen Adressen. Fehler beim Schreiben.
ab 2087 Zeichen : AC in der Anwendung. Fehler beim Lesen.

(W2K SP2, Outlook 2000 SP3, geöffnet)

Wenn ich statt der ANSI Version von ShellExecute die Unicode Funktion verwende, ist bis 2023 Zeichen alles OK, und ab 2024 bis 2083 passiert nichts, ansonsten die gleichen Ergebnisse. :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz