JavaMail API - Server IMAP
IMAP adalah Akronim untuk Internet Message Access Protocol. Ini adalah protokol Internet Lapisan Aplikasi yang memungkinkan klien email mengakses email di server email jarak jauh. Server IMAP biasanya mendengarkan pada porta 143 yang terkenal. IMAP melalui SSL (IMAPS) ditetapkan ke nomor port 993.
IMAP mendukung mode operasi on-line dan off-line. Klien email yang menggunakan IMAP biasanya meninggalkan pesan di server sampai pengguna menghapusnya secara eksplisit.
Paket com.sun.mail.imapadalah penyedia protokol IMAP untuk JavaMail API yang menyediakan akses ke penyimpanan pesan IMAP. Tabel di bawah mencantumkan antarmuka dan kelas dari penyedia ini:
Kelas / Antarmuka | Deskripsi |
---|---|
IMAPFolder.ProtocolCommand | Ini antarmuka sederhana untuk perintah protokol IMAP yang ditentukan pengguna. |
ACL | Ini adalah kelas. Entri daftar kontrol akses untuk pengenal otentikasi tertentu (pengguna atau grup). |
IMAPFolder | Kelas ini mengimplementasikan folder IMAP. |
IMAPFolder.FetchProfileItem | Ini kelas untuk mengambil tajuk. |
IMAPMessage | Kelas ini mengimplementasikan objek ReadableMime. |
IMAPMessage.FetchProfileCondition | Kelas ini mengimplementasikan pengujian yang harus dilakukan pada setiap pesan di folder. |
IMAPSSLStore | Kelas ini menyediakan akses ke penyimpanan pesan IMAP melalui SSL. |
IMAPStore | Kelas ini menyediakan akses ke penyimpanan pesan IMAP. |
Hak | Kelas ini mewakili himpunan hak untuk pengenal otentikasi (misalnya, pengguna atau grup). |
Hak. Benar | Kelas batin ini mewakili hak individu. |
SortTerm | Kriteria pengurutan tertentu, seperti yang ditentukan oleh RFC 5256. |
Beberapa poin yang perlu diperhatikan di atas penyedia ini:
Penyedia ini mendukung protokol IMAP4 dan IMAP4rev1.
IMAPStore yang terhubung memelihara kumpulan objek protokol IMAP untuk digunakan dalam berkomunikasi dengan server IMAP. Saat folder dibuka dan objek protokol IMAP baru diperlukan, IMAPStore akan menyediakannya dari kumpulan koneksi, atau membuatnya jika tidak ada yang tersedia. Ketika folder ditutup, objek protokol IMAP dikembalikan ke kumpulan koneksi jika kolam.
Objek IMAPStore terhubung mungkin atau mungkin tidak memelihara objek protokol IMAP terpisah yang menyediakan penyimpanan koneksi khusus ke server IMAP.
Penyedia protokol IMAP mendukung properti berikut ini, yang dapat disetel di objek Sesi JavaMail. Properti selalu ditetapkan sebagai string; ituType kolom menjelaskan bagaimana string diinterpretasikan.
Nama | Tipe | Deskripsi |
---|---|---|
mail.imap.user | Tali | Nama pengguna default untuk IMAP. |
mail.imap.host | Tali | Server IMAP yang akan disambungkan. |
mail.imap.port | int | Porta server IMAP yang akan disambungkan, jika metode connect () tidak secara eksplisit menetapkannya. Default-nya 143. |
mail.imap.pihakfetch | boolean | Mengontrol apakah kemampuan pengambilan sebagian IMAP harus digunakan. Default-nya adalah true. |
mail.imap.fetchsize | int | Ukuran pengambilan sebagian dalam byte. Default-nya 16K. |
mail.imap.ignorebodystructuresize | boolean | Respons IMAP BODYSTRUCTURE mencakup ukuran pasti setiap bagian tubuh. Biasanya, ukuran ini digunakan untuk menentukan berapa banyak data yang akan diambil untuk setiap bagian tubuh. Default-nya adalah false. |
mail.imap.connectiontimeout | int | Nilai batas waktu koneksi soket dalam milidetik. Default adalah waktu tunggu tak terbatas. |
mail.imap.timeout | int | Nilai batas waktu I / O soket dalam milidetik. Default adalah waktu tunggu tak terbatas. |
mail.imap.statuscachetimeout | int | Nilai batas waktu dalam milidetik untuk cache dari respons perintah STATUS. Defaultnya adalah 1000 (1 detik). Zero menonaktifkan cache. |
mail.imap.appendbuffersize | int | Ukuran maksimum pesan untuk buffer di memori saat menambahkan ke folder IMAP. |
mail.imap.connectionpoolsize | int | Jumlah maksimum koneksi yang tersedia di kumpulan koneksi. Default-nya adalah 1. |
mail.imap.connectionpooltimeout | int | Nilai batas waktu dalam milidetik untuk koneksi kumpulan koneksi. Defaultnya adalah 45000 (45 detik). |
mail.imap.separatestoreconnection | boolean | Bendera untuk menunjukkan apakah akan menggunakan koneksi penyimpanan khusus untuk perintah penyimpanan. Default-nya salah. |
mail.imap.auth.login.disable | boolean | Jika benar, cegah penggunaan perintah LOGIN AUTHENTICATE non-standar, sebagai gantinya gunakan perintah LOGIN biasa. Default-nya salah. |
mail.imap.auth.plain.disable | boolean | Jika benar, cegah penggunaan perintah AUTHENTICATE PLAIN. Default-nya salah. |
mail.imap.auth.ntlm.disable | boolean | Jika benar, cegah penggunaan perintah AUTHENTICATE NTLM. Default-nya salah. |
mail.imap.proxyauth.user | Tali | Jika server mendukung ekstensi PROXYAUTH, properti ini menetapkan nama pengguna yang akan digunakan. Otentikasi ke server menggunakan kredensial administrator. Setelah otentikasi, penyedia IMAP akan mengeluarkan perintah PROXYAUTH dengan nama pengguna yang ditentukan di properti ini. |
mail.imap.localaddress | Tali | Alamat lokal (nama host) yang akan diikat saat membuat soket IMAP. Default ke alamat yang dipilih oleh kelas Socket. |
mail.imap.localport | int | Nomor port lokal untuk mengikat saat membuat soket IMAP. Secara default, nomor port yang dipilih oleh kelas Socket. |
mail.imap.sasl.enable | boolean | Jika disetel ke true, coba gunakan paket javax.security.sasl untuk memilih mekanisme autentikasi untuk login. Default-nya adalah false. |
mail.imap.sasl.mechanisms | Tali | Daftar nama mekanisme SASL yang dipisahkan spasi atau koma untuk dicoba digunakan. |
mail.imap.sasl.authorizationid | Tali | ID otorisasi untuk digunakan dalam otentikasi SASL. Jika tidak diatur, ID otentikasi (nama pengguna) digunakan. |
mail.imap.sasl.realm | Tali | Ranah yang akan digunakan dengan mekanisme otentikasi SASL yang membutuhkan ranah, seperti DIGEST-MD5. |
mail.imap.auth.ntlm.domain | Tali | Domain otentikasi NTLM. |
mail.imap.auth.ntlm.flags | int | Bendera khusus protokol NTLM. |
mail.imap.socketFactory | Pabrik Socket | Jika disetel ke kelas yang mengimplementasikan antarmuka javax.net.SocketFactory, kelas ini akan digunakan untuk membuat soket IMAP. |
mail.imap.socketFactory.class | Tali | Jika disetel, tentukan nama kelas yang mengimplementasikan antarmuka javax.net.SocketFactory. Kelas ini akan digunakan untuk membuat soket IMAP. |
mail.imap.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.imap.socketFactory.port | int | Menentukan port yang akan dihubungkan saat menggunakan pabrik soket yang ditentukan. Port default digunakan jika tidak disetel. |
mail.imap.ssl.enable | boolean | Jika disetel ke true, gunakan SSL untuk menghubungkan dan menggunakan port SSL secara default. Defaultnya adalah false untuk protokol "imap" dan true untuk protokol "imaps". |
mail.imap.ssl.checkserveridentity | boolean | Jika disetel ke true, periksa identitas server seperti yang ditentukan oleh RFC 2595. Defaultnya salah. |
mail.imap.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.imap.ssl.socketFactory | Pabrik Soket SSL | Jika disetel ke kelas yang memperluas kelas javax.net.ssl.SSLSocketFactory, kelas ini akan digunakan untuk membuat soket SSL IMAP. |
mail.imap.ssl.socketFactory.class | Tali | Jika disetel, tentukan nama kelas yang memperluas kelas javax.net.ssl.SSLSocketFactory. Kelas ini akan digunakan untuk membuat soket SSL IMAP. |
mail.imap.ssl.socketFactory.port | int | Menentukan port yang akan dihubungkan saat menggunakan pabrik soket yang ditentukan. Jika tidak disetel, port default akan digunakan. |
mail.imap.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.imap.starttls.enable | boolean | Jika benar, aktifkan penggunaan perintah STARTTLS (jika didukung oleh server) untuk mengalihkan koneksi ke koneksi yang dilindungi TLS sebelum mengeluarkan perintah login apa pun. Default-nya salah. |
mail.imap.starttls.required | boolean | Jika benar, membutuhkan penggunaan perintah STARTTLS. Jika server tidak mendukung perintah STARTTLS, atau perintah gagal, metode hubungkan akan gagal. Default-nya adalah false. |
mail.imap.socks.host | tali | Menentukan nama host dari server proxy SOCKS5 yang akan digunakan untuk koneksi ke server email. |
mail.imap.socks.port | tali | Menentukan nomor port untuk server proxy SOCKS5. Ini hanya perlu digunakan jika server proxy tidak menggunakan nomor port standar 1080. |
mail.imap.minidletime | int | Properti ini menyetel penundaan dalam milidetik. Jika tidak disetel, defaultnya adalah 10 milidetik. |
mail.imap.enableimapevents | boolean | Aktifkan acara khusus IMAP untuk dikirim ke ConnectionListener Store. Jika benar, tanggapan yang tidak diminta yang diterima selama metode diam Store akan dikirim sebagai ConnectionEvents dengan jenis IMAPStore.RESPONSE. Pesan acara tersebut akan menjadi string respons IMAP mentah. Secara default, acara ini tidak dikirim. |
mail.imap.folder.class | Tali | Nama kelas dari subkelas com.sun.mail.imap.IMAPFolder. Subclass dapat digunakan untuk memberikan dukungan untuk perintah IMAP tambahan. Subclass harus memiliki konstruktor publik dalam bentuk MyIMAPFolder publik (String fullName, pemisah karakter, toko IMAPStore, Boolean isNamespace) dan MyIMAPFolder publik (ListInfo li, toko IMAPStore) |
Secara umum, aplikasi tidak perlu 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 IMAPStore atau IMAPFolder 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 IMAP ditunjukkan dalam bab Manajemen Kuota .