Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi EMail in RichEdit (https://www.delphipraxis.net/57170-email-richedit.html)

glkgereon 16. Nov 2005 18:36


EMail in RichEdit
 
Hi

ich habe zwar einiges gefunden, um einen Link in einem (Jv)RichEdit als Link anzuzeigen, aber leider kriege ich esmit EMail-Adressen nicht hin :(

hat da einer einen Tipp wie das gehen könnte?

rebugger 16. Nov 2005 18:49

Re: EMail in RichEdit
 
spontan würde mir jetzt einfallen, das wie in html zu machen, sprich:
die e-Mailadresse als Link anzeigen, jedoch bei der Link-Url ein "mailto:" davorzuschreiben.

glkgereon 16. Nov 2005 18:52

Re: EMail in RichEdit
 
Zitat:

Zitat von rebugger
spontan würde mir jetzt einfallen, das wie in html zu machen, sprich:
die e-Mailadresse als Link anzeigen, jedoch bei der Link-Url ein "mailto:" davorzuschreiben.

:wall:
ich hatte nur "mail:" ausprobiert...was natürlich nicht geklappt hat :(

nun muss ich ja offensichtlich auch noch mittels "OnURLClick" selber verwalten was dann passieren soll....
was muss ich da schreiben um das Standard-Email-Programm zu starten und eine neue mail mit entsprechendem Empfänger zu öffnen?

KesseK 17. Apr 2007 08:53

Re: EMail in RichEdit
 
Zitat:

Zitat von glkgereon
Zitat:

Zitat von rebugger
spontan würde mir jetzt einfallen, das wie in html zu machen, sprich:
die e-Mailadresse als Link anzeigen, jedoch bei der Link-Url ein "mailto:" davorzuschreiben.

:wall:
ich hatte nur "mail:" ausprobiert...was natürlich nicht geklappt hat :(

nun muss ich ja offensichtlich auch noch mittels "OnURLClick" selber verwalten was dann passieren soll....
was muss ich da schreiben um das Standard-Email-Programm zu starten und eine neue mail mit entsprechendem Empfänger zu öffnen?

Die Frage habe ich auch im Moment, der Thread ist zwar sehr alt, aber ich weiß nicht ob ich dafür einen neuen öffnen sollte. Ich hab immerhin das gleiche Problem. :(

kann jemand helfen? :)

Jmh124 17. Apr 2007 08:57

Re: EMail in RichEdit
 
funktioinerte das nicht einfach per shellexecute?

Lord of Ghosts 17. Apr 2007 09:44

Re: EMail in RichEdit
 
Hallo @ all , :-D

ich weiß nicht genau wie sehr euch das hier jetzt hilft ( :gruebel: ), aber das schreibt man eigentlich , wenn man eine Mail mit dem Standard - Programm versenden möchte ...in dem speziellen Fall hier kann man sogar noch Dateien anhängen : :warn:



Greets ,
Lordi
:dp:

glkgereon 17. Apr 2007 10:29

Re: EMail in RichEdit
 
wenn ich mich nicht ganz schwer irre habe ich das irgendwie hinbekommen...

ich sitze nur gerade in der schule und habe den sourcecode nicht zur hand.
werde das aber heute nachmittag mal nachgucken :-)

glkgereon 17. Apr 2007 14:28

Re: EMail in RichEdit
 
Also, ich verwende ein TJvRichEdit...

SendMail habe ich irgendwoher kopiert, kA wo.
Delphi-Quellcode:
procedure TForm_Main.Rch_InfoURLClick(Sender: TObject; const URLText: string; Button: TMouseButton);
begin
  case Button of
    mbLeft:SendMail('Feedback zu "'+cAppTitle+'"','','EmailAddy','EmailAddy',True);
  end;
end;

procedure SendMail(Subject,Mailtext,FromAdress,ToAdress:string;ShowDialog:boolean);
var Msg: TMapiMessage;
    MError: Cardinal;
    Empfaenger, Absender: TMapiRecipDesc;
begin
  with Msg do begin
    ulReserved:=0;
    lpszSubject:=PChar(Subject);
    lpszNoteText:=PChar(Mailtext);
    lpszMessageType:=nil;
    lpszDateReceived:=nil;
    lpszConversationID:=nil;
    flFlags := 0;

    // Absender
    Absender.ulReserved:=0;
    Absender.ulRecipClass:=MAPI_ORIG;
    Absender.lpszName:='';
    Absender.lpszAddress:= PChar(FromAdress);
    Absender.ulEIDSize:=0;
    Absender.lpEntryID:=nil;
    lpOriginator := @Absender;

    // Empfänger
    nRecipCount := 1;
    Empfaenger.ulReserved:=0;
    Empfaenger.ulRecipClass:=MAPI_TO;
    Empfaenger.lpszName:='';
    Empfaenger.lpszAddress:=PChar(ToAdress);
    Empfaenger.ulEIDSize:=0;
    Empfaenger.lpEntryID:=nil;
    lpRecips:=@Empfaenger;

    // Kein Anhang
    nFileCount:=0;
  end;

  // Senden
  if ShowDialog then
    MError:=MapiSendMail(0, 0, Msg, MAPI_DIALOG or MAPI_LOGON_UI, 0)
  else
    // Wenn kein Dialogfeld angezeigt werden soll:
    MError:=MapiSendMail(0, 0, Msg, 0, 0);

  case MError of
    MAPI_E_AMBIGUOUS_RECIPIENT:    MessageDlg(cEMRecipient,mterror,[mbok],0);
    MAPI_E_BAD_RECIPTYPE:          MessageDlg(cEMRecipType,mterror,[mbok],0);
    MAPI_E_FAILURE:                MessageDlg(cEMUnknown,mterror,[mbok],0);
    MAPI_E_INSUFFICIENT_MEMORY:    MessageDlg(cEMMemory,mterror,[mbok],0);
    MAPI_E_LOGIN_FAILURE:          MessageDlg(cEMLogin,mterror,[mbok],0);
    MAPI_E_TEXT_TOO_LARGE:         MessageDlg(cEMTextLength,mterror,[mbok],0);
    MAPI_E_USER_ABORT:             MessageDlg(cEMAbort,mterror,[mbok],0);
  //  SUCCESS_SUCCESS:               MessageDlg('Senden erfolgreich.',mtinformation,[mbok],0);
  end;
end;
[Edit]
Delphi-Quellcode:
uses MAPI, Graphics, Dialogs, SysUtils, Classes, Windows, WinInet;
keine Ahnung was davon wirklich gebraucht wird, habe in der Unit auch noch einiges andere drin.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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