JavaMail API - serwery POP3
Post Office Protocol (POP) to standardowy protokół internetowy warstwy aplikacji używany przez lokalnych klientów poczty e-mail do pobierania wiadomości e-mail ze zdalnego serwera za pośrednictwem połączenia TCP / IP. POP obsługuje proste wymagania dotyczące pobierania i usuwania w celu uzyskania dostępu do zdalnych skrzynek pocztowych. Serwer POP3 nasłuchuje na dobrze znanym porcie 110.
Pakiet com.sun.mail.pop3jest dostawcą protokołu POP3 dla JavaMail API, który zapewnia dostęp do magazynu wiadomości POP3. Poniższa tabela zawiera listę klas w tym pakiecie:
Nazwa | Opis |
---|---|
POP3Folder | Folder POP3 (może to być tylko „INBOX”). |
POP3Message | Wiadomość POP3. |
POP3SSLStore | Magazyn wiadomości POP3 korzystający z SSL. |
POP3Store | Magazyn wiadomości POP3. |
Kilka punktów, na które należy zwrócić uwagę powyżej tego dostawcy:
Dostawca POP3 obsługuje tylko jeden folder o nazwie INBOX. Ze względu na ograniczenia protokołu POP3, wiele funkcji API JavaMail, takich jak powiadamianie o zdarzeniach, zarządzanie folderami, zarządzanie flagami itp., Jest niedozwolonych.
Dostęp do dostawcy POP3 uzyskuje się za pośrednictwem interfejsów API JavaMail przy użyciu nazwy protokołu pop3 lub adresu URL w postaci pop3: // użytkownik: hasło @ host: port / INBOX " .
POP3 nie obsługuje trwałych flag. Na przykład flaga Flags.Flag.RECENT nigdy nie zostanie ustawiona dla wiadomości POP3. Do aplikacji należy określenie, które wiadomości w skrzynce pocztowej POP3 są nowe .
POP3 nie obsługuje metody Folder.expunge (). Aby usunąć i zniszczyć wiadomości, ustaw flagę Flags.Flag.DELETED na wiadomościach i zamknij folder przy użyciu metody Folder.close (true).
POP3 nie podaje daty odebrania , więc metoda getReceivedDate zwróci wartość null.
Kiedy uzyskuje się dostęp do nagłówków wiadomości POP3, dostawca POP3 używa polecenia TOP, aby pobrać wszystkie nagłówki, które są następnie buforowane.
Kiedy uzyskuje się dostęp do treści wiadomości POP3, dostawca POP3 używa polecenia RETR do pobrania całej wiadomości.
Metoda POP3Message.invalidate może służyć do unieważniania danych w pamięci podręcznej bez zamykania folderu.
Dostawca protokołu POP3 obsługuje następujące właściwości, które można ustawić w obiekcie sesji JavaMail. Właściwości są zawsze ustawiane jako ciągi; kolumna Type opisuje sposób interpretacji ciągu.
Nazwa | Rodzaj | Opis |
---|---|---|
mail.pop3.user | Strunowy | Domyślna nazwa użytkownika dla POP3. |
mail.pop3.host | Strunowy | Serwer POP3 do połączenia. |
mail.pop3.port | int | Port serwera POP3, z którym należy się połączyć, jeśli metoda connect () nie określa takiego portu. Domyślnie 110. |
mail.pop3.connectiontimeout | int | Wartość limitu czasu połączenia gniazda w milisekundach. Domyślnie jest nieskończony limit czasu. |
mail.pop3.timeout | int | Wartość limitu czasu we / wy gniazda w milisekundach. Domyślnie jest nieskończony limit czasu. |
mail.pop3.rsetbeforequit | boolean | Wyślij polecenie POP3 RSET podczas zamykania folderu, przed wysłaniem polecenia QUIT. Wartość domyślna to false. |
mail.pop3.message.class | Strunowy | Nazwa klasy podklasy com.sun.mail.pop3.POP3Message. Podklasa może służyć do obsługi (na przykład) niestandardowych nagłówków Content-Type. Podklasa musi mieć publicznego konstruktora w postaci MyPOP3Message (Folder f, int msgno) zgłasza MessagingException. |
mail.pop3.localaddress | Strunowy | Adres lokalny (nazwa hosta) do powiązania podczas tworzenia gniazda POP3. Domyślnie adres wybrany przez klasę Socket. |
mail.pop3.localport | int | Numer portu lokalnego do powiązania podczas tworzenia gniazda POP3. Domyślnie numer portu wybrany przez klasę Socket. |
mail.pop3.apop.enable | boolean | Jeśli ustawione na true, użyj APOP zamiast USER / PASS, aby zalogować się do serwera POP3, jeśli serwer POP3 obsługuje APOP. APOP wysyła skrót hasła zamiast hasła w postaci zwykłego tekstu. Domyślnie false. |
mail.pop3.socketFactory | Fabryka gniazd | Jeśli jest ustawiona na klasę, która implementuje interfejs javax.net.SocketFactory, ta klasa będzie używana do tworzenia gniazd POP3. |
mail.pop3.socketFactory.class | Strunowy | Jeśli jest ustawiona, określa nazwę klasy, która implementuje interfejs javax.net.SocketFactory. Ta klasa będzie używana do tworzenia gniazd POP3. |
mail.pop3.socketFactory.fallback | boolean | W przypadku ustawienia wartości true niepowodzenie utworzenia gniazda przy użyciu określonej klasy fabrycznej gniazda spowoduje utworzenie gniazda przy użyciu klasy java.net.Socket. Domyślnie true. |
mail.pop3.socketFactory.port | int | Określa port, z którym należy się połączyć podczas korzystania z określonej fabryki gniazd. Jeśli nie jest ustawiony, zostanie użyty port domyślny. |
mail.pop3.ssl.enable | boolean | Jeśli jest ustawiona na wartość true, używaj protokołu SSL do łączenia się i domyślnie używaj portu SSL. Domyślnie false dla protokołu „pop3” i true dla protokołu „pop3s”. |
mail.pop3.ssl.checkserveridentity | boolean | Jeśli ma wartość true, sprawdź tożsamość serwera określoną w dokumencie RFC 2595. Wartość domyślna to false. |
mail.pop3.ssl.trust | Strunowy | Jeśli jest ustawiona, a fabryka gniazd nie została określona, włącza użycie MailSSLSocketFactory. Jeśli ustawione na „*”, wszystkie hosty są zaufane. Jeśli jest ustawiona na listę hostów oddzielonych spacjami, te hosty są zaufane. W przeciwnym razie zaufanie zależy od certyfikatu, który przedstawia serwer. |
mail.pop3.ssl.socketFactory | SSL Socket Factory | Jeśli jest ustawiona na klasę, która rozszerza klasę javax.net.ssl.SSLSocketFactory, ta klasa będzie używana do tworzenia gniazd POP3 SSL. |
mail.pop3.ssl.socketFactory.class | Strunowy | Jeśli jest ustawiona, określa nazwę klasy, która rozszerza klasę javax.net.ssl.SSLSocketFactory. Ta klasa będzie używana do tworzenia gniazd POP3 SSL. |
mail.pop3.ssl.socketFactory.port | int | Określa port, z którym należy się połączyć podczas korzystania z określonej fabryki gniazd. Jeśli nie jest ustawiony, zostanie użyty port domyślny. |
mail.pop3.ssl.protocols | strunowy | Określa protokoły SSL, które będą włączone dla połączeń SSL. Wartość właściwości to lista tokenów oddzielonych spacjami, akceptowana przez metodę javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.pop3.starttls.enable | boolean | Jeśli prawda, włącza użycie polecenia STLS (jeśli jest obsługiwane przez serwer) w celu przełączenia połączenia na połączenie chronione TLS przed wydaniem jakichkolwiek poleceń logowania. Domyślnie false. |
mail.pop3.starttls.required | boolean | Jeśli prawda, wymaga użycia polecenia STLS. Jeśli serwer nie obsługuje polecenia STLS lub polecenie się nie powiedzie, metoda połączenia zakończy się niepowodzeniem. Domyślnie false. |
mail.pop3.socks.host | strunowy | Określa nazwę hosta serwera proxy SOCKS5, który będzie używany do połączeń z serwerem poczty. |
mail.pop3.socks.port | strunowy | Określa numer portu dla serwera proxy SOCKS5. |
mail.pop3.disabletop | boolean | Jeśli ma wartość true, polecenie POP3 TOP nie będzie używane do pobierania nagłówków wiadomości. Domyślnie false. |
mail.pop3.forgettopheaders | boolean | Jeśli ma wartość true, nagłówki, które mogły zostać pobrane za pomocą polecenia POP3 TOP, zostaną zapomniane i zastąpione nagłówkami pobranymi w ramach polecenia POP3 RETR. Domyślnie false. |
mail.pop3.filecache.enable | boolean | Jeśli ma wartość true, dostawca POP3 będzie buforował dane wiadomości w pliku tymczasowym, a nie w pamięci. Wiadomości są dodawane do pamięci podręcznej tylko podczas uzyskiwania dostępu do treści wiadomości. Nagłówki wiadomości są zawsze buforowane w pamięci (na żądanie). Pamięć podręczna plików jest usuwana po zamknięciu folderu lub zakończeniu pracy maszyny JVM. Domyślnie false. |
mail.pop3.filecache.dir | Strunowy | Jeśli pamięć podręczna plików jest włączona, tej właściwości można użyć do przesłonięcia domyślnego katalogu używanego przez pakiet JDK dla plików tymczasowych. |
mail.pop3.cachewriteto | boolean | Kontroluje zachowanie metody writeTo w obiekcie wiadomości POP3. Jeśli jest ustawiona na true, a treść wiadomości nie została jeszcze zapisana w pamięci podręcznej, a ignoreList ma wartość null, wiadomość jest buforowana przed zapisaniem. W przeciwnym razie wiadomość jest przesyłana strumieniowo bezpośrednio do strumienia wyjściowego bez buforowania. Domyślnie false. |
mail.pop3.keepmessagecontent | boolean | Jeśli ta właściwość ma wartość true, zostanie zachowane twarde odniesienie do zawartości pamięci podręcznej, co zapobiega ponownemu użyciu pamięci do momentu zamknięcia folderu lub jawnego unieważnienia zawartości pamięci podręcznej (przy użyciu metody unieważnienia). Domyślnie false. |
Generalnie aplikacje nie powinny bezpośrednio używać klas z tego pakietu. Zamiast tego powinni używać interfejsów API zdefiniowanych przez pakiet javax.mail (i podpakiety). Aplikacje nigdy nie powinny bezpośrednio konstruować wystąpień POP3Store lub POP3Folder . Zamiast tego powinni użyć metody Session getStore, aby uzyskać odpowiedni obiekt Store, a następnie pobrać obiekty Folder.
Przykłady wykorzystania serwera POP3 zostały przedstawione w rozdziale Sprawdzanie wiadomości e-mail .