27. november 2010 - 16:35Der er
21 kommentarer og 1 løsning
Hente mail med Indy pop3
Ifølge hjælpen til Indy skulle POP3 komponenten være lige ud ad landevejen. F.eks.
procedure TForm99.SoegClick(Sender: TObject); var AntalMails: Integer; // AMsg: TIdMessage; begin IdPOP3.Host := 'radioringkobing.dk'; IdPOP3.Password := '********'; IdPOP3.Username := 'xxx@radioringkobing.dk'; IdPOP3.Connect(-1); AntalMails := IdPOP3.CheckMessages; // if AntalMails > 0 then // begin // IdPOP3.Retrieve(1, AMsg); // List.Items := (AMsg.Body); // end; IdPOP3.Disconnect; end;
Den skulle hente oplysninger om hvor mange mails der venter. Men jeg får følgende fejlmeddelelse i runtime: Socket Error # 10061 Connection refused. I følge hjælpen står det hele rigtig. Er der nogen som har lidt erfaring med dette problem?
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
24. juli 2024
Slettet bruger
27. november 2010 - 16:49#1
forkert port du logger ind på
Kan du hente mails, fra adioringkobing.dk på normal vis?
Jeg ændrede host til IdPOP3.Host := 'mail.radioringkobing.dk'; Så forsvandt fejlbeskrivelsen "Socket Error # 10061 Connection refused" Nu får jeg fejlen "Read Timeout". Er det et skridt i den rigtige retning?
procedure TForm99.SoegClick(Sender: TObject); var AntalMails: Integer; // AMsg: TIdMessage; begin IdPOP3.Host := 'radioringkobing.dk'; IdPOP3.Password := '********'; IdPOP3.Username := 'xxx@radioringkobing.dk'; IdPOP3.Connect(-1); // AntalMails := IdPOP3.CheckMessages; // if AntalMails > 0 then // begin // IdPOP3.Retrieve(1, AMsg); // List.Items := (AMsg.Body); // end; IdPOP3.Disconnect; end;
Lavede stadig "Read Timeout".
procedure TForm99.SoegClick(Sender: TObject); var AntalMails: Integer; // AMsg: TIdMessage; begin IdPOP3.Host := 'radioringkobing.dk'; IdPOP3.Password := '********'; IdPOP3.Username := 'xxx@radioringkobing.dk'; // IdPOP3.Connect(-1); // AntalMails := IdPOP3.CheckMessages; // if AntalMails > 0 then // begin // IdPOP3.Retrieve(1, AMsg); // List.Items := (AMsg.Body); // end; IdPOP3.Disconnect; end;
Så kom der ingen fejlmeddelelse, men det er vel logisk nok, da den ikke forsøger at connecte.
Linien IdPOP3.Connect(-1); har jeg forsøgt ændret til IdPOP3.Connect(5000); for at få den til at vente 5 sekunder, men fejlbeskeden er der med det samme, den kommer ikke efter 5 sekunder.
Hos mig virker det fint hvis jeg bruger mail.radioringkobing.dk. Jeg bruger Indy version 10.2.3 Jeg kan mindes at der i tidligere versioner har været mail problemer så måske skal du have Indy opdateret.
Hej Kroning Dit svar vækker bekymring hos mig. Du siger det virker fint hvis du bruger mail.radioringkobing.dk ? Du skulle da helst ikke være istand til at læse mine mails, eller connecte til min mailbox ! Eller er der noget jeg burde vide?
Jeg får ikke en Connection refused dvs. jeg connecter fint og jeg får ikke en Read ReadTimeout dvs. jeg læser også fint. Jeg får dog en Login failed da det brugernavn og kodeord jeg benytter er forkerte :-), men altså ingen problemer med at connecte og læse.
Jeg har gennem længere tid haft et program kørende der automatisk henter mail fra en given konto
Jeg henter med nedenstående kode som har virket upåklagelig i over 2 år Vær opmærksom på at koden er taget direkte fra mit program, så der er nok en del ekstra krydderi på
function MailConnect() : Boolean; begin Result := True; frmMain.conPOP3.Host := Settings.POP3_Address; frmMain.conPOP3.Username := Settings.POP3_User; frmMain.conPOP3.Password := Settings.POP3_Password; try If frmMain.conPOP3.Connected then frmMain.conPOP3.Disconnect; If Not frmMain.conPOP3.Connected then frmMain.conPOP3.Connect; except Log_Error('Could not connect to pop server, please check your connection details'); PanelUpdate(0, 'Could not connect to POP3 server'); Result := False; end; If Result = False then Settings.POP3_Errors := Settings.POP3_Errors + 1 else Settings.POP3_Errors := 0; end;
procedure MessagesRetrieve(); var intIndex: integer; intMessages: integer; intMessages_New: integer; intMessages_Old: integer; begin if MailConnect = False then Exit; bolRunning := True; MailClear; MailReset; intMessages_Old := frmMain.lstMails.Items.Count; intMessages := frmMain.conPOP3.CheckMessages; intMessages_New := intMessages - intMessages_Old; if intMessages_New < 0 then intMessages_New := 0; if intMessages > 0 then frmMain.conPOP3.RetrieveHeader(intMessages, frmMain.IdMessage) else PanelUpdate(0, 'No new messages on server!'); frmMain.lstMails.Items.Clear; for intIndex:= 1 to intMessages do begin PanelUpdate(0, Format('Downloading Messages... %d of %d', [intIndex, intMessages])); Application.ProcessMessages; frmMain.IdMessage.Clear; frmMain.conPOP3.RetrieveHeader(intIndex, frmMain.IdMessage); frmMain.lstItem := frmMain.lstMails.Items.Add; frmMain.lstItem.Caption := frmMain.IdMessage.From.Text; frmMain.lstItem.SubItems.Add(frmMain.IdMessage.Subject); frmMain.lstItem.SubItems.add(formatdatetime('dd/mm/yyy hh:mm:ss',frmMain.IdMessage.Date)); frmMain.lstItem.SubItems.Add(IntToStr(frmMain.conPOP3.RetrieveMsgSize(intIndex))+'Kb'); PanelUpdate(0, 'Total Messages ' + IntToStr(intMessages) + ' - ' + IntToStr(intMessages_New) + ' new.'); end; if (intMessages > 1) and (Settings.Status = stsOnline) then frmMain.timPOP3_Process.Interval := 500 else frmMain.timPOP3_Process.Interval := Settings.POP3_Interval; bolRunning := False; end;
Denne del af mit projekt haster lige pludselig ikke mere, så det er noget jeg vil eksperimentere med når jeg får bedre tid. Jeg har en gang tidligere forsøgt at opgradere INDY, det gik der så meget ged i, at jeg var nødt til at ominstallere Delphi igen, så pt. har jeg ikke lyst til at gentage forsøget. Alle jeres input vil jeg afprøve når jeg får tid, så læg lige nogle svar så I kan få jeres point.
Dit spørgsmål på Eksperten.dk Kære anton_kruse_andersen
Her er oversigt over dine åbne eller ubesvarede spørgsmål på Eksperten.dk. Måske har du selv fundet en løsning, har flere informationer eller mangler at acceptere et svar?
Åbne spørgsmål med indlæg:
Hente mail med Indy pop3 i kategorien Programmering / Delphi | 20 indlæg. (Spørgsmålet er over 20 dage gammelt)
Husk: At følge med i debatten, svare på eventuelle spørgsmål - og lukke spørgsmålet når du får en løsning eller selv finder et svar.
Hvis ingen andre vil have pointene, tager jeg dem selv.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.