![]() |
Probleme beim Senden an SMTP...
Ich versuche gerade ein Programm zu basteln, welches Mails von einem pop3 Server abholt und direkt an einen SMTP weiterleiten soll.
Das Abholen funktioniert, aber der SMTP meldet immer nur "0 message[s] received"...
Delphi-Quellcode:
Außerdem würd mich noch interessieren, wie ich die größe der aktuellen Mail ermitteln kann.. ich hab keine passende Eigenschaft gefunden :roll:
procedure TForm1.Button1Click(Sender: TObject);
var aCount, aSize: longint; n, m: integer; TmpMsg: TIdMessage; Envelope_to: string; begin Memo1.Clear; Memo2.Clear; IdPop31.Disconnect; IdPop31.Host := 'pop.irgendeinserver.com'; IdPop31.Username := 'irgendeinuser'; IdPop31.Password := 'irgendeinpasswort'; IdSMTP1.Host := 'server'; Envelope_to := 'neueadresse@server'; try IdPop31.Connect; if IdPop31.LastCmdResult.TextCode = '1' then Memo2.Lines.Add('<< +OK Ready') else Memo2.Lines.Add('<< +OK Error'); aCount := IdPop31.CheckMessages; aSize := IdPop31.RetrieveMailBoxSize; Memo2.Lines.Add('<< +OK ' + IntToStr(aCount) + ' ' + IntToStr(aSize)); IdSMTP1.Connect; if IdSMTP1.Connected = True then begin Memo2.Lines.Add(IntToStr(aCount) + ' messages waiting'); for n := 1 to aCount do begin TmpMsg := TIdMessage.Create(IdPop31); try if IdPop31.Retrieve(n, TmpMsg) = True then Memo1.Lines.Add('retrieved') else Memo1.Lines.Add('NOT retrieved'); for m := 0 to TmpMsg.Body.Count - 1 do Memo1.Lines.Add(TmpMsg.Body[m]); Memo2.Lines.Add('<< +OK ' + IntToStr(TmpMsg.Headers.Count)); //Hier soll eigentlich die größe der Message stehen Memo2.Lines.Add('Message from: ' + TmpMsg.Headers.Values['From']); Memo2.Lines.Add('to: ' + TmpMsg.Headers.Values['To']); m := TmpMsg.Headers.IndexOfName('Envelope_to'); if m = -1 then m := TmpMsg.Headers.Add('Envelope_to'); TmpMsg.Headers.ValueFromIndex[m] := Envelope_to; IdSMTP1.SendMsg(TmpMsg); {if IdPop31.Delete(n) = True then Memo2.Lines.Add('<< +OK Everything done') else Memo2.Lines.Add('<< +Error Message not deleted');} finally TmpMsg.Free; end; end; IdSMTP1.Disconnect; end else Memo2.Lines.Add('<< +Error not connected to SMTP'); except on E: Exception do begin for n := 0 to +IdPop31.LastCmdResult.Text.Count - 1 do Memo2.Lines.Add('<< +Error ' + IdPop31.LastCmdResult.Text[n]); end; end; end; |
Re: Probleme beim Senden an SMTP...
Ich hab jetzt selbst heraus gefunden, warum das Mail ncht gesendet wurde:
alt:
Delphi-Quellcode:
neu:
IdSMTP1.SendMsg(TmpMsg);
Delphi-Quellcode:
Jetzt hab ich allerdings das Problem, dass das eingefügte Header Feld (Envelope_to) offensichtlich nicht wirklich eingefügt wird...
IdSMTP1.Send(TmpMsg);
Was ist hier falsch?
Delphi-Quellcode:
Envelope_to := 'irgendwer@meinserver.de';
m := TmpMsg.Headers.IndexOfName('Envelope_to'); if m = -1 then m := TmpMsg.Headers.Add('Envelope_to'); TmpMsg.Headers.ValueFromIndex[m] := Envelope_to; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz