JavaMail API - POP3 Sunucuları

Postane Protokolü (POP), yerel e-posta istemcileri tarafından bir TCP / IP bağlantısı üzerinden uzak bir sunucudan e-posta almak için kullanılan uygulama katmanı İnternet standardı protokolüdür. POP, uzak posta kutularına erişim için basit indirme ve silme gereksinimlerini destekler. Bir POP3 sunucusu, iyi bilinen bağlantı noktası 110'u dinler.

Paket içeriği com.sun.mail.pop3POP3 ileti deposuna erişim sağlayan JavaMail API için bir POP3 protokol sağlayıcısıdır. Aşağıdaki tablo bu paketteki sınıfları listeler:

İsim Açıklama
POP3Folder Bir POP3 Klasörü (yalnızca "GELEN KUTUSU" olabilir).
POP3Message Bir POP3 Mesajı.
POP3SSLStore SSL kullanan bir POP3 İleti Deposu.
POP3Store Bir POP3 Mesaj Deposu.

Bu sağlayıcının üzerinde belirtilmesi gereken bazı noktalar:

  • POP3 sağlayıcısı yalnızca adlı tek bir klasörü destekler INBOX. POP3 protokolünün sınırlamaları nedeniyle, olay bildirimi, klasör yönetimi, bayrak yönetimi vb. Gibi JavaMail API özelliklerinin çoğuna izin verilmez.

  • POP3 sağlayıcısına, protokol adı pop3 veya pop3: // kullanıcı: parola @ ana bilgisayar: bağlantı noktası / INBOX " biçiminde bir URL kullanılarak JavaMail API'leri aracılığıyla erişilir .

  • POP3 kalıcı bayrakları desteklemez. Örneğin Flags.Flag.RECENT bayrağı POP3 mesajları için asla ayarlanmayacaktır. POP3 posta kutusundaki hangi mesajların yeni olduğunu belirlemek uygulamaya bağlıdır .

  • POP3, Folder.expunge () yöntemini desteklemez. Mesajları silmek ve tamamen silmek için, mesajlarda Flags.Flag.DELETED bayrağını ayarlayın ve Folder.close (true) yöntemini kullanarak klasörü kapatın.

  • POP3 bir alma tarihi sağlamaz , bu nedenle getReceivedDate yöntemi boş döndürür.

  • Bir POP3 mesajının başlıklarına erişildiğinde, POP3 sağlayıcısı daha sonra önbelleğe alınan tüm başlıkları almak için TOP komutunu kullanır.

  • Bir POP3 mesajının içeriğine erişildiğinde, POP3 sağlayıcısı tüm mesajı almak için RETR komutunu kullanır.

  • POP3Message.invalidate yöntemi klasörü kapatmadan invalidate önbelleğe alınan veriler için de kullanılabilir.

POP3 protokol sağlayıcısı, JavaMail Session nesnesinde ayarlanabilen aşağıdaki özellikleri destekler. Özellikler her zaman dizeler olarak ayarlanır; Tür sütunu dizenin nasıl yorumlandığını açıklar.

İsim Tür Açıklama
mail.pop3.user Dize POP3 için varsayılan kullanıcı adı.
mail.pop3.host Dize Bağlanılacak POP3 sunucusu.
mail.pop3.port int Connect () yöntemi açıkça bir tane belirtmiyorsa, bağlanılacak POP3 sunucusu bağlantı noktası. Varsayılan 110.
mail.pop3.connectiontimeout int Milisaniye cinsinden soket bağlantısı zaman aşımı değeri. Varsayılan sonsuz zaman aşımıdır.
mail.pop3.timeout int Milisaniye cinsinden soket G / Ç zaman aşımı değeri. Varsayılan sonsuz zaman aşımıdır.
mail.pop3.rsetbeforequit Boole QUIT komutunu göndermeden önce klasörü kapatırken bir POP3 RSET komutu gönderin. Varsayılan yanlıştır.
mail.pop3.message.class Dize Com.sun.mail.pop3.POP3Message alt sınıfının sınıf adı. Alt sınıf, standart olmayan Content-Type üstbilgilerini işlemek için (örneğin) kullanılabilir. Alt sınıf, MyPOP3Message (Folder f, int msgno) MessagingException oluşturur biçiminde genel bir kurucuya sahip olmalıdır.
mail.pop3.localaddress Dize POP3 soketi oluştururken bağlanılacak yerel adres (ana bilgisayar adı). Socket sınıfı tarafından seçilen adrese varsayılanlar.
mail.pop3.localport int POP3 soketi oluştururken bağlanacak yerel bağlantı noktası numarası. Socket sınıfı tarafından seçilen bağlantı noktası numarasına varsayılanlar.
mail.pop3.apop.enable Boole True olarak ayarlanırsa, POP3 sunucusu APOP'u destekliyorsa, POP3 sunucusunda oturum açmak için USER / PASS yerine APOP kullanın. APOP, açık metin parolası yerine parolanın bir özetini gönderir. Varsayılan olarak yanlıştır.
mail.pop3.socketFactory Priz Fabrikası Javax.net.SocketFactory arayüzünü uygulayan bir sınıfa ayarlanırsa, bu sınıf POP3 soketleri oluşturmak için kullanılacaktır.
mail.pop3.socketFactory.class Dize Ayarlanırsa, javax.net.SocketFactory arabirimini uygulayan bir sınıfın adını belirtir. Bu sınıf, POP3 soketleri oluşturmak için kullanılacaktır.
mail.pop3.socketFactory.fallback Boole True olarak ayarlanırsa, belirtilen soket fabrika sınıfını kullanarak bir soket oluşturulamaması, soketin java.net.Socket sınıfı kullanılarak oluşturulmasına neden olur. Varsayılan değer doğrudur.
mail.pop3.socketFactory.port int Belirtilen soket fabrikası kullanılırken bağlanılacak bağlantı noktasını belirtir. Ayarlanmazsa, varsayılan bağlantı noktası kullanılacaktır.
mail.pop3.ssl.enable Boole True olarak ayarlanmışsa, bağlanmak için SSL kullanın ve varsayılan olarak SSL bağlantı noktasını kullanın. "Pop3" protokolü için varsayılan olarak false ve "pop3s" protokolü için true değerine ayarlanır.
mail.pop3.ssl.checkserveridentity Boole True olarak ayarlanırsa, RFC 2595 tarafından belirtildiği gibi sunucu kimliğini kontrol edin. Varsayılan değer false.
mail.pop3.ssl.trust Dize Ayarlanmışsa ve bir soket fabrikası belirtilmemişse, MailSSLSocketFactory'nin kullanımını etkinleştirir.
"*" Olarak ayarlanırsa, tüm ana bilgisayarlara güvenilir.
Boşluklarla ayrılmış bir ana bilgisayar listesine ayarlanırsa, bu ana bilgisayarlar güvenilirdir.
Aksi takdirde güven, sunucunun sunduğu sertifikaya bağlıdır.
mail.pop3.ssl.socketFactory SSL Soket Fabrikası Javax.net.ssl.SSLSocketFactory sınıfını genişleten bir sınıfa ayarlanırsa, bu sınıf POP3 SSL soketleri oluşturmak için kullanılacaktır.
mail.pop3.ssl.socketFactory.class Dize Ayarlanırsa, javax.net.ssl.SSLSocketFactory sınıfını genişleten bir sınıfın adını belirtir. Bu sınıf, POP3 SSL soketleri oluşturmak için kullanılacaktır.
mail.pop3.ssl.socketFactory.port int Belirtilen soket fabrikası kullanılırken bağlanılacak bağlantı noktasını belirtir. Ayarlanmazsa, varsayılan bağlantı noktası kullanılacaktır.
mail.pop3.ssl.protocols dizi SSL bağlantıları için etkinleştirilecek SSL protokollerini belirtir. Özellik değeri, javax.net.ssl.SSLSocket.setEnabledProtocols yöntemi için kabul edilebilir belirteçlerin boşluklarla ayrılmış bir listesidir.
mail.pop3.starttls.enable Boole Doğruysa, herhangi bir oturum açma komutu vermeden önce bağlantıyı TLS korumalı bir bağlantıya geçirmek için STLS komutunun (sunucu tarafından destekleniyorsa) kullanılmasını etkinleştirir. Varsayılan olarak yanlıştır.
mail.pop3.starttls.required Boole Doğruysa, STLS komutunun kullanılmasını gerektirir. Sunucu STLS komutunu desteklemiyorsa veya komut başarısız olursa, bağlantı yöntemi başarısız olur. Varsayılan olarak yanlıştır.
mail.pop3.socks.host dizi Posta sunucusuna bağlantılar için kullanılacak SOCKS5 proxy sunucusunun ana bilgisayar adını belirtir.
mail.pop3.socks.port dizi SOCKS5 proxy sunucusu için bağlantı noktası numarasını belirtir.
mail.pop3.disabletop Boole True olarak ayarlanırsa, POP3 TOP komutu mesaj başlıklarını almak için kullanılmayacaktır. Varsayılan olarak yanlıştır.
mail.pop3.forgettopheaders Boole True olarak ayarlanırsa, POP3 TOP komutu kullanılarak alınmış olabilecek başlıklar unutulacak ve POP3 RETR komutunun bir parçası olarak alınan başlıklar ile değiştirilecektir. Varsayılan olarak yanlıştır.
mail.pop3.filecache.enable Boole True olarak ayarlanırsa, POP3 sağlayıcısı mesaj verilerini bellek yerine geçici bir dosyada önbelleğe alır. Mesajlar, yalnızca mesaj içeriğine erişilirken önbelleğe eklenir. Mesaj başlıkları her zaman bellekte önbelleğe alınır (istek üzerine). Dosya önbelleği, klasör kapatıldığında veya JVM sona erdiğinde kaldırılır. Varsayılan olarak yanlıştır.
mail.pop3.filecache.dir Dize Dosya önbelleği etkinleştirilirse, bu özellik geçici dosyalar için JDK tarafından kullanılan varsayılan dizini geçersiz kılmak için kullanılabilir.
mail.pop3.cachewriteto Boole Bir POP3 ileti nesnesindeki writeTo yönteminin davranışını denetler. True olarak ayarlanırsa ve mesaj içeriği henüz önbelleğe alınmamışsa ve ignoreList boşsa, mesaj yazılmadan önce önbelleğe alınır. Aksi takdirde, mesaj önbelleğe alınmadan doğrudan çıkış akışına aktarılır. Varsayılan olarak yanlıştır.
mail.pop3.keepmessagecontent Boole Bu özellik true olarak ayarlanırsa, klasör kapatılana veya önbelleğe alınan içerik açıkça geçersiz kılınana kadar (geçersiz kılma yöntemi kullanılarak) belleğin yeniden kullanılması önlenerek, önbelleğe alınan içeriğe kesin bir referans korunur. Varsayılan olarak yanlıştır.

Genel olarak uygulamalar bu paketteki sınıfları doğrudan kullanmamalıdır. Bunun yerine, javax.mail paketi (ve alt paketler) tarafından tanımlanan API'leri kullanmalıdırlar . Uygulamalar asla doğrudan POP3Store veya POP3Folder örneklerini oluşturmamalıdır . Bunun yerine, uygun bir Store nesnesi elde etmek için getStore Session yöntemini kullanmalı ve bundan Klasör nesneleri edinmelidirler.

POP3 sunucusunu kullanma örnekleri, E-postaları Kontrol Etme bölümünde gösterilmiştir .