Thema: Delphi EMail in RichEdit

Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#8

Re: EMail in RichEdit

  Alt 17. Apr 2007, 15:28
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]
uses MAPI, Graphics, Dialogs, SysUtils, Classes, Windows, WinInet; keine Ahnung was davon wirklich gebraucht wird, habe in der Unit auch noch einiges andere drin.
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat