Announcement

Collapse
No announcement yet.

Attachment mit TIdSMTP verschicken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Attachment mit TIdSMTP verschicken

    Hallo,

    ich habe ein kleines Programm geschrieben, das automatisch Zip-Files als Attachment verschickt und verwende dazu die TIdSMPT-Komponente. Wenn ich mir diese E-Mail mit dem Web-Interface meines Providers anschaue, dann funktioniert das auch tadellos - wenn ich das gleiche E-Mail allerdings mit Outlook empfange, dann wird aus dem Attachement "xyz.zip" plötzlich ein "xyz.zip .dat" - hat jemand eine Idee, wie ich das verhindern kann ?

    Vielen Dank im voraus.

    Peter

  • #2
    Doppelposting :
    Schöne Grüße, Mario

    Comment


    • #3
      Hallo,

      ich habe folgendes Problem:

      Eine email in Outlook Express (Windows 2000) soll automatisch durch ein Delphi 7 Programm generiert werden, wobei ein Anhang übergeben wird. Die MailVorbereitung durch den Aufruf von

      <PRE>

      PrepareMail( Empfaenger, Betreff, Text, Anhang, msg );

      verläuft noch ohne Fehler, wobei Empfaenger =''.

      function TSendMail.PrepareMail(Empfaenger, Betreff, Text: String;
      Anhang: TStrings; var msg: MAPIMessage): boolean;
      var
      msgempfaenger: PMapiRecipDesc;
      msgdatei: array of MapiFileDesc;
      dateinamen: array of string;
      status: ULONG;
      i: integer;
      flags: Cardinal;
      begin
      ZeroMemory( @msg, sizeof( msg )); // Speicherbereich leeren!
      if( betreff <> '' ) then msg.lpszSubject := PChar( betreff );
      if( text <> '' ) then msg.lpszNoteText := PChar( text );

      // Hier werden die Dateien angehängt

      if( anhang <> nil ) then begin
      if( anhang.count > 0 ) then begin
      try
      setlength( msgdatei, anhang.count );
      setlength( dateinamen, anhang.count );
      for i := 0 to anhang.count - 1 do begin
      if( copy( anhang[i], 2, 1 ) <> ':' ) and
      ( copy( anhang[i], 1, 2 ) <> '\\' ) then
      raise Exception.Create( 'PrepareMail: Anhang ''' + anhang[i] + ''' ist kein absoluter Pfadname!' );
      ZeroMemory( @msgdatei[i], sizeof( msgdatei[i] ));
      dateinamen[i] := anhang[i];
      msgdatei[i].nPosition := ULONG( -1 );
      msgdatei[i].lpszPathName := PChar( dateinamen[i] );
      end;
      msg.lpFiles := @msgdatei[0];
      msg.nFileCount := anhang.count;
      except on E:Exception do begin
      // Fehler ins Logbuch schreiben
      errortrack(true,1,false,'Anhang', 'SendMail','TSendMail.PrepareMail', 'Anhang ist vorhanden. Fehler beim Anhängen: ' + anhang[i] + ' ' + E.Message);
      end;
      end;
      end else begin
      // Fehler ins Logbuch schreiben
      errortrack(true,1,false,'Anhang', 'SendMail','TSendMail.PrepareMail', 'Anhang ist nicht vorhanden.');
      end;
      end else begin
      // Fehler ins Logbuch schreiben
      errortrack(true,1,false,'Anhang', 'SendMail','TSendMail.PrepareMail', 'Anhang ist nicht vorhanden.');
      end;

      // Ermittle den Empfänger
      if( empfaenger <> '' ) then begin
      if ShowResolveName then
      flags := MAPI_DIALOG
      else
      flags := 0;

      status := MAPIResolveName( fMAPISession, application.Handle, PChar( empfaenger ), flags, 0, msgempfaenger );
      if status = MAPI_E_USER_ABORT then begin
      result := false;
      exit;
      end;
      if status <> SUCCESS_SUCCESS then
      raise Exception.Create( 'MAPIResolveName: ' + getfehler( status ));

      msgempfaenger^.ulRecipClass := MAPI_TO;
      msg.lpRecips := msgempfaenger;
      msg.nRecipCount := 1;
      end;

      result := true;
      end;

      </PRE>

      Das Generieren der email durch den Aufruf der Delphi-Routine in Mapi.Pas

      status := MAPISendMail( fMAPISession, Application.Handle, msg, flags, 0 );

      liefert aber nicht den Status 0 für eine fehlerfreie Generierung zurück, sondern den
      Status 11: 'The specified attachment was not found. No message was sent.'

      Outlook Express kann nicht starten.

      Wer weiß Rat, woran das liegen kann?

      Vielen Dank im voraus

      Comment

      Working...
      X