Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme mit email mittels ShellExecute (mailto....) (https://www.delphipraxis.net/60105-probleme-mit-email-mittels-shellexecute-mailto.html)

Steffen0917 3. Jan 2006 11:27


Probleme mit email mittels ShellExecute (mailto....)
 
Hallo zusammen,

ich weiß, dieses Thema ist gar nicht neu, aber ich habe jetzt die bis jetzt vorgestellten Lösungen probiert und bin nicht zufrieden:

Aufgabe: email nur mit Recipients + subject + Body kein Attachment
Das ganze soll an das Standard-emailprogramm übertragen werden, um es von dort zu senden
Der Body hat aber mehr als 2000 Zeichen !

1. Lösung mit ShellExecute (mailto....) funktioniert prima, aber wenn Body > 2000 Zeichen
geht gar nix mehr

2. Lösung mit MAPI: hat gestern genau 1 mal funktioniert, jetzt bekomme ich immer
"unbekannter Fehler" (MAPI_E_FAILURE = 2)

Bis jetzt nehm ich die Lösung 1, schieb den langen Text vorher mit 'Clipboard.AsText:=text' in die Zwischenablage. Wenn das mail aufgerufen wird, muss ich halt noch "einfügen" aus Zwischenablage drücken.

Hat noch jemand ne Idee ??? :gruebel:

RavenIV 3. Jan 2006 12:06

Re: Probleme mit email mittels ShellExecute (mailto....)
 
Liste der Anhänge anzeigen (Anzahl: 1)
schau dir mal diese Lösung an. (siehe Unit1.zip)
Hab ich hier in der DP gefunden, weiss aber nicht mehr wo.

gruessle

Klaus01 3. Jan 2006 12:17

Re: Probleme mit email mittels ShellExecute (mailto....)
 
oder TeasyOutlookMail
von Delphi Super Page
damit sollte es auch gehen.

Grüße
Klaus

Steffen0917 4. Jan 2006 12:03

Re: Probleme mit email mittels ShellExecute (mailto....)
 
Ja, super.

Die Lösung von Raven funktioniert. :hello:

Jetzt müsste ich nur noch wissen, welchen Parameter ich ändern muss, dass das mail als Vollbild gestartet wird, meins öffnet sich nämlich immer als kleines Fenster.

Weiss das jemand ???

Gruss, Steffen

Steffen0917 6. Jan 2006 20:02

Re: Probleme mit email mittels ShellExecute (mailto....)
 
So, das ist die Lösung, mit der ein mail auch grösser als 2000 Zeichen sein kann, wenn man es an das Standard-mailprogramm übergibt.

Nur - weiss jemand, wie ich das auf "maximiert" stelle ??? Bei mir geht immer nur ein kleines Fenster auf... :gruebel:


Delphi-Quellcode:
procedure TForm1.SendMail(adresse, betreff, mailtext : string);
var
  MapiMessage: TMapiMessage;
  MapiRecipDesc: TMapiRecipDesc;
  MError: Cardinal;
begin
  FillChar(MapiRecipDesc, SizeOf(TMapiRecipDesc), 0);
  with MapiRecipDesc do
  begin
    ulReserved := 0;
    ulRecipClass := MAPI_TO;
    lpszName := PChar(adresse); // Adresse
    lpszAddress := nil;
    ulEIDSize := 0;
    lpEntryID := nil;
  end;

  FillChar(MapiMessage, SizeOf(TMapiMessage), 0);
  with MapiMessage do
  begin
    ulReserved := 0;
    lpszSubject := PChar(betreff); // Betreff des mails
//    lpszSubject := nil;
    lpszNoteText := PChar(mailtext); // Text des mails (body)
//    lpszNoteText := nil;
    lpszMessageType := nil;
    lpszDateReceived := nil;
    lpszConversationID := nil;
    flFlags := 0;
    lpOriginator := nil;
    nRecipCount := 1;           // nRecipCount muß auf Anzahl der MapiRecipDesc gesetzt werden;
    lpRecips := @MapiRecipDesc; // lpRecips muß auf die Adresse MapiRecipDesc gesetzt werden;
    nFileCount := 0;
    lpFiles := nil;
  end;

  MError := MapiSendMail(0, Application.Handle, MapiMessage,
                         MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
  if MError <> 0 then
  begin
    MessageDlg('Nachricht wurde nicht gesendet...', mtError, [mbOK], 0);
  end;
end;
[edit=Luckie]Delphi-Tags. Mfg, Luckie[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.

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