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 .