Einzelnen Beitrag anzeigen

hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Indy - Attachment verliert Namen (erst seit Delphi2009)

  Alt 25. Feb 2009, 19:51
Ich grabe mal den Thread hier aus, weil ich mit obigen Quellcode auch versuche eine Email zu verschicken. Dabei muss nichteinmal zwingend ein Attachment dabei sein, werde aber später auch Attachments versenden wollen, deshalb lass ich das mal drin.

Doch zuerst einmal verstehe ich nicht alle Befehle:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
att : TIDAttachmentFile;
begin
try
   screen.cursor:=crhourglass;
   IdMessage1.CCList.EMailAddresses := 'adresse';
   IdSMTP1.Host := Edit1.Text;
   IdSMTP1.UserName := Edit3.Text;
   IdSMTP1.Password := Edit4.Text;
   IdSMTP1.Port := StrToInt(Edit2.Text);
   IdSMTP1.Connect;
   while not eof do begin //für was steht eof?
     IdMessage1.MessageParts.Clear;
     IdMessage1.ContentTransferEncoding := 'udf-8';
     with TIdText.Create(IdMessage1.MessageParts, nil) do //und was ist TIdText, kann ich nicht IdMessage direkt bearbeiten?
     begin
         ContentType := 'text/plain';
         CharSet := 'ISO-8859-1';
         ContentTransfer := 'base64';
         body.Text := Memo1.Lines.Text;
     end;
     IdMessage1.From.Text := 'blah';
     IdMessage1.Recipients.EMailAddresses := 'blah';
     IdMessage1.Subject := Edit5.Text;
     IdMessage1.ContentType := 'multipart/related; type="text/plain"'; //brauche ich das hier nur wenn ich mit TIdText arbeite?
     IdMessage1.CharSet :='ISO-8859-1';
     if CheckBox1.Checked and FileExists('c:\test.pdf') then
        att := TIdAttachmentFile.Create(IdMessage1.MessageParts, 'c:\test.pdf');
     IdSMTP1.Send(IdMessage1);
     IdSMTP1.Disconnect;
  end;
  screen.Cursor :=crdefault;
except
     screen.Cursor :=crdefault;
end;

end;
Außerdem bringt mir Delphi immer einen "E/A-Fehler 6" und zwar genau dann, wenn diese eof ausgeführt wird. Die Delphi Hilfe verrät mit, dass eof prüft ob das Dateiende erreicht ist, aber ich übergebe ja keine Variable, gar nichts. Woher soll das Programm wissen was es zu prüfen hat? Auf der Microsoft Page erfährt man folgendes:
Zitat:
ERROR_INVALID_HANDLE 6 0x6 : The handle is invalid.
  Mit Zitat antworten Zitat