Odbieranie emaila via ClientSocket.

0

Ćwiczę ostatnio odbieranie i wysyłanie maili przez sockety, ale napotkałem problem, który mnie przerasta :).
Odbieranie wiadomości ze skrzynki idzie mi sprawnie, ale zdarzają się takie maile, że przy odbieraniu dzieli mi je na części około 8kb (i za każdym razem inny rozmiar, ale zawsze w okolicach 8kb).
Zdarza się też, że odbiera ostatnią część takiego rozkawałkowanego maila, a do 8kb dopełnia następnym mailem.

Czy ktoś z was spotkał się już z takim problemem? Jak temu zaradzić?

0

To jest typowe dla socketów. Wysyła tekst porcjami, wcale nie tak, jak byśmy sobie tego życzyli. Zrób to na zasadzie bufora (String) i rozpoznawania po długości maila, dokąd powinien być. A dalszy tekst dalej przetwarzasz jako kolejny.

0

Polecam IdTCPClient. Tworzysz nowy wątek w programie i tam możesz wywoływać funkcję która pobierze Ci dokładnie tyle bajtów ile chcesz.

0

Właśnie chodziło mi o to, żeby zrobić to bezpośrednio za pomocą ClientSocket.

0

No więc jedyne wyjście to tak jak powiedział Adam.Pilorz - sprawdzasz rozmiar maila, pobierasz sobie przypuśćmy po 5 kb a na koncu pobierasz tą 'resztkę' która została :) ;P

1 użytkowników online, w tym zalogowanych: 0, gości: 1