27. november 2010 - 16:35 Der 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?
Avatar billede Slettet bruger
27. november 2010 - 16:49 #1
forkert port du logger ind på

Kan du hente mails, fra adioringkobing.dk på normal vis?
Avatar billede arne_v Ekspert
27. november 2010 - 16:52 #2
Kræver den POP3 server brug af kryptering?
27. november 2010 - 23:35 #3
Alle de andre mailkonti virker fint og der er også sendt en mail til denne adresse uden at den meldte fejl.

Hvilken port skal der hentes på?
Default porten er 110.
Det er det også i Outlook.

Jeg har ikke bedt om nogen form for kryptering.
Avatar billede kroning Nybegynder
28. november 2010 - 10:41 #4
Jeg kan ikke få forbindelse til radioringkobing.dk, men der er hul igennem til mail.radioringkobing.dk
28. november 2010 - 19:05 #5
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?
28. november 2010 - 19:10 #6
Jeg prøvede lige for sjov skyld at oprette den aktuelle email adresse i Outlook, og den hentede alle ventende emails med det samme.
Avatar billede kroning Nybegynder
28. november 2010 - 19:24 #7
Det kunne være rart at vide hvilken linie der fejler.
Avatar billede kroning Nybegynder
28. november 2010 - 19:30 #8
Og hvilken Indy version du bruger.
28. november 2010 - 19:41 #9
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.
28. november 2010 - 19:43 #10
Jeg bruger D7 og og den Indy der fulgte med, jeg meder det er 10
28. november 2010 - 19:44 #11
Jeg bruger D7 og den Indy der fulgte med, jeg mener det er ver. 10
Avatar billede kroning Nybegynder
28. november 2010 - 20:40 #12
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.
28. november 2010 - 20:49 #13
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?
Avatar billede kroning Nybegynder
28. november 2010 - 21:07 #14
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.
28. november 2010 - 21:18 #15
Ok, Fint.
Hvilke parametre bruger du?
Hvor aflæser jeg versions nummer på Indy?
Og, hvordan opgraderer jeg nemmest?

Åh nej det var jo hele tre spørgsmål på en gang :-)
Avatar billede kroning Nybegynder
28. november 2010 - 21:32 #16
Jeg bruger din kode bortset fra IdPOP3.Connect; altså ikke  IdPOP3.Connect(-1); (-1) findes ikke i den version jeg bruger.

Hvis du højre klikker på indy komponenten (idPOP) på din form kan du se versions nummeret.

Der er desværre ikke nogen nem måde at opgraderer på, det skal gøres manuelt ved at hente koden her:
http://www.indyproject.org/Sockets/index.EN.aspx

husk at fjerne ALT gammel Indy først, dvs. ALLE indy filer du har liggende.

Der findes noget auto install. du kan hente samme sted men det er vist ældre versioner.
Avatar billede hugopedersen Nybegynder
29. november 2010 - 08:05 #17
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;
Avatar billede martinlind Nybegynder
02. december 2010 - 11:05 #18
du kunne også checke om POP3-demoen kan hente.... hvis ikke er det nok dine mail-konto oplysninger du skal checke, for den virker fint den demo :-)
23. december 2010 - 17:13 #19
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.
Avatar billede martinlind Nybegynder
23. december 2010 - 18:06 #20
hvis du kaster dig ud i at opgradere indy, mener jeg der er en vejledning du SKAL følge :-)
28. december 2010 - 18:05 #21
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.
Avatar billede martinlind Nybegynder
29. december 2010 - 11:57 #22
god jul
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester