JavaMail API - Server POP3

Post Office Protocol (POP) adalah protokol standar Internet lapisan aplikasi yang digunakan oleh klien email lokal untuk mengambil email dari server jauh melalui koneksi TCP / IP. POP mendukung persyaratan unduh dan hapus sederhana untuk akses ke kotak surat jauh. Server POP3 mendengarkan pada port terkenal 110.

Paket com.sun.mail.pop3adalah penyedia protokol POP3 untuk JavaMail API yang menyediakan akses ke penyimpanan pesan POP3. Tabel di bawah ini mencantumkan kelas-kelas dalam paket ini:

Nama Deskripsi
POP3Folder Folder POP3 (hanya bisa "INBOX").
POP3Message Pesan POP3.
POP3SSLStore Penyimpanan Pesan POP3 menggunakan SSL.
POP3Store Toko Pesan POP3.

Beberapa poin yang perlu diperhatikan di atas penyedia ini:

  • Penyedia POP3 hanya mendukung satu folder bernama INBOX. Karena keterbatasan protokol POP3, banyak kapabilitas JavaMail API seperti pemberitahuan peristiwa, pengelolaan folder, pengelolaan tanda, dll. Tidak diperbolehkan.

  • Penyedia POP3 diakses melalui JavaMail API dengan menggunakan nama protokol pop3 atau URL dengan format pop3: // user: password @ host: port / INBOX " .

  • POP3 tidak mendukung tanda permanen. Misalnya, bendera Flags.Flag.RECENT tidak akan pernah disetel untuk pesan POP3. Terserah aplikasi untuk menentukan pesan mana di kotak surat POP3 yang baru .

  • POP3 tidak mendukung metode Folder.expunge (). Untuk menghapus dan membuang pesan, setel flag Flags.Flag.DELETED pada pesan dan tutup folder menggunakan metode Folder.close (true).

  • POP3 tidak memberikan tanggal penerimaan , sehingga metode getReceivedDate akan mengembalikan null.

  • Saat header pesan POP3 diakses, penyedia POP3 menggunakan perintah TOP untuk mengambil semua header, yang kemudian disimpan dalam cache.

  • Ketika konten pesan POP3 diakses, penyedia POP3 menggunakan perintah RETR untuk mengambil seluruh pesan.

  • The POP3Message.invalidate metode dapat digunakan untuk data yang invalidate cache tanpa menutup folder.

Penyedia protokol POP3 mendukung properti berikut ini, yang dapat disetel di objek Sesi JavaMail. Properti selalu ditetapkan sebagai string; kolom Type menjelaskan bagaimana string diinterpretasikan.

Nama Tipe Deskripsi
mail.pop3.user Tali Nama pengguna default untuk POP3.
mail.pop3.host Tali Server POP3 yang akan disambungkan.
mail.pop3.port int Porta server POP3 yang akan disambungkan, jika metode connect () tidak secara eksplisit menentukannya. Default-nya 110.
mail.pop3.connectiontimeout int Nilai batas waktu koneksi soket dalam milidetik. Default adalah waktu tunggu tak terbatas.
mail.pop3.timeout int Nilai batas waktu I / O soket dalam milidetik. Default adalah waktu tunggu tak terbatas.
mail.pop3.rsetbeforequit boolean Kirim perintah POP3 RSET saat menutup folder, sebelum mengirim perintah QUIT. Default-nya salah.
mail.pop3.message.class Tali Nama kelas dari subkelas com.sun.mail.pop3.POP3Message. Subclass dapat digunakan untuk menangani (misalnya) header Tipe Konten non-standar. Subclass harus memiliki konstruktor publik dalam bentuk MyPOP3Message (Folder f, int msgno) melempar MessagingException.
mail.pop3.localaddress Tali Alamat lokal (nama host) untuk mengikat saat membuat soket POP3. Default ke alamat yang dipilih oleh kelas Socket.
mail.pop3.localport int Nomor port lokal untuk mengikat saat membuat soket POP3. Secara default, nomor port yang dipilih oleh kelas Socket.
mail.pop3.apop.enable boolean Jika disetel ke true, gunakan APOP alih-alih USER / PASS untuk masuk ke server POP3, jika server POP3 mendukung APOP. APOP mengirimkan intisari kata sandi daripada kata sandi teks biasa. Default-nya adalah false.
mail.pop3.socketFactory Pabrik Socket Jika disetel ke kelas yang mengimplementasikan antarmuka javax.net.SocketFactory, kelas ini akan digunakan untuk membuat soket POP3.
mail.pop3.socketFactory.class Tali Jika disetel, tentukan nama kelas yang mengimplementasikan antarmuka javax.net.SocketFactory. Kelas ini akan digunakan untuk membuat soket POP3.
mail.pop3.socketFactory.fallback boolean Jika disetel ke true, kegagalan untuk membuat soket menggunakan kelas pabrik soket yang ditentukan akan menyebabkan soket dibuat menggunakan kelas java.net.Socket. Default-nya adalah true.
mail.pop3.socketFactory.port int Menentukan port yang akan dihubungkan saat menggunakan pabrik soket yang ditentukan. Jika tidak disetel, port default akan digunakan.
mail.pop3.ssl.enable boolean Jika disetel ke true, gunakan SSL untuk menghubungkan dan menggunakan port SSL secara default. Defaultnya adalah false untuk protokol "pop3" dan true untuk protokol "pop3s".
mail.pop3.ssl.checkserveridentity boolean Jika disetel ke true, periksa identitas server seperti yang ditentukan oleh RFC 2595. Defaultnya salah.
mail.pop3.ssl.trust Tali Jika disetel, dan pabrik soket belum ditentukan, memungkinkan penggunaan MailSSLSocketFactory.
Jika disetel ke "*", semua host dipercaya.
Jika disetel ke daftar host yang dipisahkan spasi putih, host tersebut dipercaya.
Jika tidak, kepercayaan bergantung pada sertifikat yang diberikan server.
mail.pop3.ssl.socketFactory Pabrik Soket SSL Jika diatur ke kelas yang memperluas kelas javax.net.ssl.SSLSocketFactory, kelas ini akan digunakan untuk membuat soket SSL POP3.
mail.pop3.ssl.socketFactory.class Tali Jika disetel, tentukan nama kelas yang memperluas kelas javax.net.ssl.SSLSocketFactory. Kelas ini akan digunakan untuk membuat soket SSL POP3.
mail.pop3.ssl.socketFactory.port int Menentukan port yang akan dihubungkan saat menggunakan pabrik soket yang ditentukan. Jika tidak disetel, port default akan digunakan.
mail.pop3.ssl.protocols tali Menentukan protokol SSL yang akan diaktifkan untuk koneksi SSL. Nilai properti adalah daftar token yang dipisahkan spasi putih yang dapat diterima oleh metode javax.net.ssl.SSLSocket.setEnabledProtocols.
mail.pop3.starttls.enable boolean Jika benar, aktifkan penggunaan perintah STLS (jika didukung oleh server) untuk mengalihkan koneksi ke koneksi yang dilindungi TLS sebelum mengeluarkan perintah login apa pun. Default-nya adalah false.
mail.pop3.starttls.required boolean Jika benar, membutuhkan penggunaan perintah STLS. Jika server tidak mendukung perintah STLS, atau perintah gagal, metode hubungkan akan gagal. Default-nya adalah false.
mail.pop3.socks.host tali Menentukan nama host dari server proxy SOCKS5 yang akan digunakan untuk koneksi ke server email.
mail.pop3.socks.port tali Menentukan nomor port untuk server proxy SOCKS5.
mail.pop3.disabletop boolean Jika disetel ke true, perintah TOP POP3 tidak akan digunakan untuk mengambil header pesan. Default-nya adalah false.
mail.pop3.forgettopheaders boolean Jika disetel ke true, header yang mungkin telah diambil menggunakan perintah POP3 TOP akan dilupakan dan diganti dengan header yang diambil sebagai bagian dari perintah POP3 RETR. Default-nya adalah false.
mail.pop3.filecache.enable boolean Jika disetel ke true, penyedia POP3 akan menyimpan data pesan ke cache dalam file sementara bukan di memori. Pesan hanya ditambahkan ke cache saat mengakses konten pesan. Header pesan selalu disimpan dalam cache dalam memori (sesuai permintaan). Cache file dihapus ketika folder ditutup atau JVM berakhir. Default-nya adalah false.
mail.pop3.filecache.dir Tali Jika cache file diaktifkan, properti ini dapat digunakan untuk mengganti direktori default yang digunakan oleh JDK untuk file sementara.
mail.pop3.cachewriteto boolean Mengontrol perilaku metode writeTo pada objek pesan POP3. Jika disetel ke true, dan konten pesan belum di-cache, dan ignoreList null, pesan di-cache sebelum ditulis. Jika tidak, pesan dialirkan langsung ke aliran keluaran tanpa di-cache. Default-nya adalah false.
mail.pop3.keepmessagecontent boolean Jika properti ini disetel ke true, referensi keras ke konten yang di-cache akan disimpan, mencegah memori digunakan kembali hingga folder ditutup atau konten yang di-cache secara eksplisit tidak valid (menggunakan metode tidak valid). Default-nya adalah false.

Secara umum, aplikasi tidak boleh menggunakan kelas-kelas dalam paket ini secara langsung. Sebaliknya, mereka harus menggunakan API yang ditentukan oleh paket javax.mail (dan sub-paket). Aplikasi tidak boleh membuat instance POP3Store atau POP3Folder secara langsung. Sebaliknya, mereka harus menggunakan metode Sesi getStore untuk mendapatkan objek Store yang sesuai, dan dari situ memperoleh objek Folder.

Contoh untuk menggunakan server POP3 ditunjukkan dalam bab Memeriksa Email .