E-Mailversand aus Delphi Berlin 10.1 Prof.

    E-Mailversand aus Delphi Berlin 10.1 Prof.

    Liebe Delphi Gemeinde,

    ich habe ein Problem mit dem versenden von E-Mail aus Delphi heraus.
    In meiner Delphi-Version 6 Prof. funktionierte die unten aufgeführte Routine einwandfrei.
    Sie startete mein E-Mailprogramm (Thunderbird) trug den Empfänger, den Betreff und
    den zu versendenden Mailtext gleich in Thunderbird ein.
    Der Anwender brauchte nur auf 'Versenden' klicken und weg war die E-Mail.

    Die gleich Routine läuft unter Delphi Berlin 10.1 Prof nicht.
    Reklamiert werden die Zeilen mit PChar z.B.:
    lpszSubject := PChar('Medikamentenbestellung');

    Dann kommt die Fehlermeldung:
    [dcc32 Fehler] Memo_mail.pas(115): E2010 Inkompatible Typen: 'PAnsiChar' und 'PWideChar'

    Ich habe dann "PChar" in "PAnsiChar" geändert.
    Das wird zwar vom Programm akzeptiert, aber im Emailprogramm steht dann nichts oder nur Müll.
    Meine dringende Frage:
    Was muss geändert werden, damit ich diese Routine in Delphi Berlin 10.1 Prof weiter nutzen kann???
    Für Eure Hilfe wäre ich sehr dankbar. ?(

    Gruss gringo


    Delphi-Code

    1. procedure TMemo_m.Button1Click(Sender: TObject);
    2. var
    3. MMessage : TMapiMessage;
    4. Fehler : Integer;
    5. Empfaenger : Array[0..1] of TMapiRecipDesc;
    6. Absender : TMapiRecipDesc;
    7. begin
    8. with MMessage do begin
    9. ulReserved := 0;
    10. lpszSubject := PChar('Medikamentenbestellung');
    11. lpszNoteText := PChar(Memo1.Lines.Text);
    12. lpszMessageType := nil;
    13. lpszDateReceived := nil;
    14. lpszConversationID := nil;
    15. flFlags := 0;
    16. // Absender festlegen
    17. Absender.ulReserved:=0;
    18. Absender.ulRecipClass:=MAPI_ORIG;
    19. Absender.lpszName:= PChar('Absender');
    20. Absender.lpszAddress:= PChar(Memo_ans.Edit17.Text); //Emailadresse Absender
    21. Absender.ulEIDSize:=0;
    22. Absender.lpEntryID:=nil;
    23. lpOriginator := @Absender;
    24. //Empfänger festlegen ... hier ein Empfänger
    25. nRecipCount := 1;
    26. Empfaenger[0].ulReserved:=0;
    27. Empfaenger[0].ulRecipClass:=MAPI_TO;
    28. Empfaenger[0].lpszName:= PChar(Memo_ans.Edit2.text);//Empfängername
    29. Empfaenger[0].lpszAddress:= PChar(Memo_ans.Edit8.text);//Emailadresse
    30. Empfaenger[0].ulEIDSize:=0;
    31. Empfaenger[0].lpEntryID:=nil;
    32. lpRecips := @Empfaenger;
    33. nFileCount := 0;
    34. lpFiles := nil;
    35. end;
    36. Fehler := MapiSendMail(0, 0, MMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
    37. case fehler of
    38. 0 : ;
    39. MAPI_E_USER_ABORT : showmessage('Nutzerabbruch');
    40. else
    41. showmessage('Fehler');
    42. end;
    43. Form5.Close;
    44. Close;
    45. Memo1.Text:='';
    46. end;
    Moin... 8o
    dann nichts oder nur Müll.

    ...schreibe mal ein Beispiel.

    versuche mal statt:

    Delphi-Code

    1. lpszSubject := PChar('Medikamentenbestellung');

    das:

    Delphi-Code

    1. lpszSubject := PAnsiChar(AnsiString('Medikamentenbestellung'));


    PS: Das gilt für alle PChar(...)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „haentschman“ ()