BLANTERORBITv102

    Cara Mengirim Email Menggunakan Java Swing

    Rabu, 04 Oktober 2017

    Pembukaan

    Tutorial cara mengirim email menggunakan java swing adalah tutorial yang cukup mudah. Mengirim email ini menggunakan layanan google mail (SMTP), sehingga kita tidak perlu melakukan konfigurasi yang rumit. Biasanya pengiriman email melalui aplikasi sangat lah jarang, terutama pada aplikasi desktop (terkecuali aplikasi untuk perusahaan besar). Karena beberapa orang masih suka bertanya bagaimana mengirim email menggunakan java, kali ini saya berikan langsung menggunakan swing (GUI).

    Pembahasan

    Pertama kali yang wajib kita perhatikan adalah layanan google mail mengizinkan aplikasi kita agar dapat mengakses google mail. 
    1. Display Unlock Captcha , silahkan enable dengan cara pilih tombol Continue.
    2. Less Secure Apps , jika Allow less secure apps masih dalam kondisi OFF maka pada radio button di klik dalam kondisi warna biru.
    3. Download library JavaMail API 
    Selanjutnya silahkan buat interface form untuk mengirim pesan dengan JFrame Form, lihat gambar dibawah saja (saya anggap anda sudah bisa membuat iterface jika belum silahkan pelajari tutorial sebelumnya di blog ini).
    Cara Mengirim Email Menggunakan Java Swing 1
    Gambar 1
    Berikut adalah daftar komponen dan variabel yang penting dalam pembuatan interface.
    KomponenTextVariableFungsi
    JFrame - - Merupakan form utama dari aplikasi
    Jlabel Kirim kepada dan Subjek jLabel1 dan jLabel2 Merupakan label penjelas pada form
    jTextField - penerima dan subjek Form yang paling pertama adalah untuk email tujuan dan setelahnya adalah subjek email
    jTextArea - isi Merupakan textarea untuk memasukan pesan email
    jButton Kirim dan Bersihkan btn_kirim dan btn_bersihkan Tombol untuk mengirim dan tombol bersihkan seluruh form
    Selanjutnya klik dua kali pada masing-masing tombol, sehingga mengarahkan pada bagian koding. Klik dua kali berguna untuk membuat event actionPerform, bisa juga dengan memilih klik kanan komponen jbutton kemudian pilih event.

    Lakukan import library mail-1.4.7.jar pada package yang kita gunakan, setelah berhasil silahkan ketikan kode program dibawah pada bagian
      private void btn_kirimActionPerformed(java.awt.event.ActionEvent evt) {                                          
            
        } 
    sehingga menjadi seperti dibawah ini.
        private void btn_kirimActionPerformed(java.awt.event.ActionEvent evt) {                                          
            try {
                Properties props = new Properties();
                props.put("mail.smtp.auth", "true");
         props.put("mail.smtp.starttls.enable", "true");
         props.put("mail.smtp.host", "smtp.gmail.com");
         props.put("mail.smtp.port", "587");
    
                Session session = Session.getInstance(props, new EmailAuth());
                Message pesan = new MimeMessage(session);
    
                InternetAddress dari = new InternetAddress("namaemail@gmail.com", "Dari Java Source Code");
                pesan.setFrom(dari);
    
                InternetAddress tujuan = new InternetAddress(penerima.getText());
    
                pesan.setRecipient(Message.RecipientType.TO, tujuan);
    
                pesan.setSubject(subjek.getText());
                pesan.setText(isi.getText());
                Transport.send(pesan);
                JOptionPane.showMessageDialog(null,"Email berhasil terkirim ke "+penerima.getText());
            } catch (UnsupportedEncodingException | MessagingException ex) {
                JOptionPane.showMessageDialog(null, ex);
            }
        }
    Apabila didapatkan pesan tanda error, cukup klik kanan pada lembar kerja kemudian pilih Fix Imports atau dengan cara tekan keyboard CTRL+SHIFT+I sampai tampil gambar dibawah kemudian klik OK.
    Cara Mengirim Email Menggunakan Java Swing 2
    Gambar 2
    Setelah selesai, ada satu tanda lagi tepat pada bagian
    Session session = Session.getInstance(props, new EmailAuth());
    sederhananya adalah dengan menekan tanda lampu warning, kemudian pilih Create Class EmailAuth in javascmailer.JavaScMailer, lihat pada gambar  dibawah.
    Cara Mengirim Email Menggunakan Java Swing 3
    Gambar 3
    Cek pada bagian bawah kode program, terdapat class EmailAuth yang baru dibuat seperti kode program dibawah.
        private static class EmailAuth extends Authenticator {
    
            public EmailAuth() {
            }
        }
    Ubah dengan kode program dibawah.
        private static class EmailAuth extends Authenticator {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("email@kamu.com", "passwordemailkamu");
            }
        }
    Dengan ketentuan email@kamu.com merupakan alamat email yang digunakan untuk mengirim pesan, dan passwordemailkamu adalah password dari email yang digunakan. Jika ada pesan error maka cukup Fix Import kembali. Tahap terakhir adalah pada bagian tombol bersihkan, silahkan saja tambah kode program berikut pada btn_bersihkanActionPerformed.
        private void btn_bersihkanActionPerformed(java.awt.event.ActionEvent evt) {                                              
            penerima.setText("");
            subjek.setText("");
            isi.setText("");
        }
    Tahap terakhir adalah melakukan ujicoba untuk mengirim email, jika anda berhasil mengirim emailnya maka akan tampil seperti gambar dibawah.

    Cara Mengirim Email Menggunakan Java Swing 4
    Gambar 4
    Cara Mengirim Email Menggunakan Java Swing 5
    Gambar 5

    Penutup

    Sekian tutorial Cara Mengirim Email Menggunakan Java Swing, untuk pertanyaan silahkan bertanya pada kolom komentar. Untuk kali ini saya tidak menyediakan link download kode program dari tutorial Cara Mengirim Email Menggunakan Java Swing.

    Terimakasih sudah berkesempatan untuk menimba ilmu dari blog JSC, semoga ilmu yang di share dapat bermanfaat. Jika ada pertanyaan mengenai ilmu yang terkait ataupun tidak, mari kita berdiskusi di dalam kolom komentar ini.

    Keep Learning and Keep Sharing

    1. Kalo yang mengirimnya secara terjadwal bagaimana min?

      BalasHapus