|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Pop3 не конектится
что на yandex, что на mail.ru не конектиться
пробовал менять Port на 110, Host на pop3.mail.ru, pop.yandex.ru, pop3.yandex.ru добавил ConnectTimeout в результате либо висит и говорит Connection time out либо закрывается и говорит Gracefuly closed connection в блок if не проходит Код:
Memo1.Clear; IdPOP31.AuthType:=patUserPass; IdPOP31.Host:='pop.mail.ru'; IdPOP31.Username:='mypop3testmail2014@mail.ru'; IdPOP31.Password:='testpassword'; IdPOP31.Port:=995; IdPOP31.ConnectTimeout:=10000; try IdPOP31.Connect; if IdPOP31.Connected then begin в чем проблема? |
#3
|
|||
|
|||
Добавил SSL, теперь конектится
флаги не видит, уже нагуглил, что на IMAP надо переходить оказывается что в каждом письме может быть очень много частей Поиск рулит, к сожалению на поисковиках а не по форуму. полезный ресурс по этим компонентам http://www.indyproject.org/docsite/h...e=TIdPOP3.html В общем этот код работает. Код:
IdPOP31.AuthType:=patUserPass; IdPOP31.Host:='pop3.mail.ru'; IdPOP31.Username:='mypop3testmail2014@mail.ru'; IdPOP31.Password:='testpassword'; IdPOP31.Port:=995; IdPOP31.ConnectTimeout:=10000; IdSSLIOHandlerSocketOpenSSL1.Host:=IdPOP31.Host; IdSSLIOHandlerSocketOpenSSL1.Port:=IdPOP31.Port; IdSSLIOHandlerSocketOpenSSL1.Destination:=Format('%s:%d',[IdPOP31.Host,IdPOP31.Port]); IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSv1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode:=sslmUnassigned; IdPOP31.IOHandler:=IdSSLIOHandlerSocketOpenSSL1; IdPOP31.UseTLS:=utUseImplicitTLS; try IdPOP31.Connect; if IdPOP31.Connected then begin Memo1.Lines.Add('connected'); MessageCount:=IdPOP31.CheckMessages; Memo1.Lines.Add('Message Count='+IntToStr(MessageCOunt)); for i:=1 to MessageCount do begin IdPOP31.RetrieveHeader(i,IdMessage1); Memo1.Lines.Add(IdMessage1.Subject); if (mfSeen in IdMessage1.Flags ) then Memo1.Lines.Add('Seen'); if (not (mfSeen in IdMessage1.Flags)) then begin Memo1.Lines.Add('New'); IdPOP31.Retrieve(i,IdMessage2); Memo1.Lines.AddStrings(IdMessage2.Body); PartsCount:=IdMessage2.MessageParts.Count;// Memo1.Lines.Add('Parts Count='+IntToStr(PartsCount)); for j:=0 to PartsCount-1 do begin if (IdMessage2.MessageParts.Items[j].PartType=mptAttachment) then begin Attachment:=IdMessage2.MessageParts.Items[j] as TIdAttachmentFile; Memo1.Lines.Add(Attachment.FileName); Attachment.SaveToFile(Attachment.FileName); end; end; end; end; end; Except on E:Exception do ShowMessage(E.Message); end; if IdPOP31.Connected then IdPOP31.Disconnect; |