Einzelnen Beitrag anzeigen

Willie1

Registriert seit: 28. Mai 2008
655 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Mail aus Programm abschicken

  Alt 14. Apr 2023, 19:28
Hallo Delphianer/innen,

ich habe mich lange nicht mehr hier sehen lassen. Gesundheitliche Probleme, Augen-OP u.a.m.
-------------------------------------------------------------------------------------------

Ich bin nicht mehr kreativ. Um so mehr ärgert es mich, wenn ich in einem alten Programm von mir einen Fehler entdecke, der mir unmöglich entgangen sein kann.
Es bietet die Möglichkeit, aus dem Programm ein Bild als Mail mit Dateianhang zu versenden. Das funktioniert nicht mehr. Ich habe Thunderbird installiert, Tb wird auch gestartet aber die Datei wird nicht übernommen (Fehler 11). Es liegt nicht am Thunderbird. Mit XNView, was das selbe kann kann, klappt das reibungslos.
Folgenden Programmcode habe ich kopiert:
Delphi-Quellcode:
 procedure SendMail(Subject,Mailtext,
                     FromName,FromAdress,
                     ToName,ToAdress,
                     AttachedFileName,
                     DisplayFileName:string;
                     ShowDialog:boolean);
  var
    MapiMessage : TMapiMessage;
    MError : Cardinal;
    Empfaenger : array[0..1] of TMapiRecipDesc;
    Absender : TMapiRecipDesc;
    Datei : array[0..1] of TMapiFileDesc;
  begin
    with MapiMessage do begin
      ulReserved := 0;

      // Betreff
      lpszSubject := PAnsiChar(Subject);

      // Body
      lpszNoteText := PAnsiChar(Mailtext);

      lpszMessageType := nil;
      lpszDateReceived := nil;
      lpszConversationID := nil;
      flFlags := 0;

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

      // Empfänger festlegen (Hier: nur 1 Empfänger)
      nRecipCount := 1;

      Empfaenger[0].ulReserved:=0;
      Empfaenger[0].ulRecipClass:=MAPI_TO;
      Empfaenger[0].lpszName:= PAnsiChar(ToName);
      Empfaenger[0].lpszAddress:= PAnsiChar(ToAdress);
      Empfaenger[0].ulEIDSize:=0;
      Empfaenger[0].lpEntryID:=nil;
      lpRecips := @Empfaenger;

      // Dateien anhängen (Hier: nur 1 Datei)
      nFileCount := 1;

      // Name der Datei auf der Festplatte
      Datei[0].lpszPathName:= PAnsiChar(AttachedFilename);

      // Name, der in der Email angezeigt wird
      Datei[0].lpszFileName:= PAnsiChar(DisplayFilename);
      Datei[0].ulReserved:=0;
      Datei[0].flFlags:=0;
      Datei[0].nPosition:=Cardinal(-1);
      Datei[0].lpFileType:=nil;
      lpFiles := @Datei;

    end;
Habe ich im Web gefunden, wahrscheinlich hier im Forum und ist uralt ca. 15 Jahre!
Wie schon geschrieben, früher hat es funktioniert! Hat sich bei MAPI etwas geändert?
Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat