Pembuka
Selain untuk mengirim email, JavaMail memiliki banyak kegunaan. Dalam tutorial Cara Mengambil Kotak Masuk Pesan Gmail di Java Swing ini, saya akan memberikan contoh kode progam java yang mengambil kotak masuk/ pesan masuk dari layanan email google. Namun saya hanya memberikan sedikit contoh dalam pengimplementasiannya pada java saja, untuk ke tahap advanced kita dapat berdiskusi melalui kolom komentar.
Pembahasan
Seperti tutorial sebelumnya mengenai Cara Mengirim Email Menggunakan Java Swing, kita akan menyatukan program tersebut dengan program inbox. Buat jFrame baru pada package yang sama dengan nama jFrame adalah DashboardMail ,lalu buatlah sebuah interface dengan keinginan anda, atau lihat gambar dibawah ini.
Komponen | Text | Variable | Fungsi |
---|---|---|---|
jFrame | - | - | Merupakan form utama dari aplikasi |
jPanel | - | fullPanel, otherPanel dan tablePanel | fullPanel komponen kontainer utuk menampung seluruh komponen kontrol dan kontainer, otherPanel untuk menampung jButton dan jLabel, dan tablePane untuk menampung komponen jTable. |
jButton | Inbox dan Send | btn_inbox dan btn_kirim | btn_inbox digunakan untuk fungsi pemanggilan cek inbox pada email dan btn_kirim untuk memanggil jFrame pada JavaScMailer.java |
jLabel | Java-Sc Tutorial Email | jLabel1 | - |
jButton | Kirim dan Bersihkan | btn_kirim dan btn_bersihkan | Tombol untuk mengirim dan tombol bersihkan seluruh form |
jTable | - | tableInbox | Untuk menampung data kotak masuk pesan pada email. |
public DashboardMail() {
initComponents();
}
Selanjutnya buatlah method baru dengan nama method cekInbox(), kemudian ketikan kode program berikut.id public void cekInbox(){
String host = "pop.gmail.com";
String user = "emailgmailkamu@gmail.com";
String password = "passwordgmailkamu";
try {
Properties properties = new Properties();
properties.put("mail.pop3.host", host);
properties.put("mail.pop3.port", "995");
properties.put("mail.pop3.starttls.enable", "true");
Session emailSession = Session.getDefaultInstance(properties);
Store store = emailSession.getStore("pop3s");
store.connect(host, user, password);
//mengambil folder inbox pada email
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);
//baca kotak masuk
Message[] messages = emailFolder.getMessages();
System.out.println("messages.length---" + messages.length);
//mengambil seluruh daftar kotak masuk
for (int i = 0, n = messages.length; i < n; i++) {
//menyimpan pesan masuk pada array
Message message = messages[i];
DefaultTableModel model = (DefaultTableModel) tableInbox.getModel();
List daftarInbox = new ArrayList<>();
tableInbox.setAutoCreateColumnsFromModel(true);
daftarInbox.add(i+1);
daftarInbox.add(message.getFrom()[0]);
daftarInbox.add(message.getSubject());
//menampilkan array pada tabel
model.addRow(daftarInbox.toArray());
}
emailFolder.close(false);
store.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
Apabila menampilkan banyak error, anda cukup menekan CTRL+SHIFT+I untuk import seluruh library yang dibutuhkan. Agar kode program dapat di eksekusi, tentu harus ada komponen yang memerintahkan eksekusi. Maka pada masing-masing tombol buat lah Action Event, dengan cara double click saja komponen jButton. Pada masing-masing block kode program isi berdasarkan kode program dibawah ini. private void btn_inboxActionPerformed(java.awt.event.ActionEvent evt) {
cekInbox();
}
Dan ini untuk tombol send. private void btn_kirimActionPerformed(java.awt.event.ActionEvent evt) {
JavaScMailer send = new JavaScMailer();
send.setVisible(true);
send.setAlwaysOnTop(true);
}
Setelah selesai coba jalankan kode program di atas sehingga jika ada perintah eksekusi tiap tombol akan tampil seperti gambar berikut.Gambar 2 |
Penutup
Namun ada beberapa kelemahan saat kita membuat program seperti ini, load saat eksekusi program sangat lama, jika ada 1000 data maka load akan membutuhkan waktu yang cukup lama. Namun bisa saja kita mengakalinya dengan mengambil pesan masuk yang paling atas saja, atau mungkin saja ada beberapa library yang bisa kita gunakan saat meload data dari google mail yang banyak. Tentu pengalaman orang bisa saja melebihi dari tutorial diatas, silahkan berkomentar apabila memiliki tips dan trik yang lebih baik untuk tutorial Cara Mengambil Kotak Masuk Pesan Gmail di Java Swing.
0 Komentar
Keep Learning and Keep Sharing