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.