Jom Belajar Hantar email dengan Java !!! (Genius Corner Siri 31)

Tajuk: Hantar email dengan Java

Genius Corner Siri 31

Oleh: Fariz Gaskin

 

Salam ceria buat semua pembaca budiman. Kita bertemu kembali di dalam ruangan Genius Corner minggu ini, bersama latihan Java bahagian yang kelapan. Kali ini, kita akan pelajari kaedah menghantar email.

 

Melalui tujuh latihan Java di dalam artikel Genius Corner terdahulu, kita telah pelajari hampir kesemua asas pengaturcaraan di dalam bahasa Java. Bermula artikel ini, kita akan pelajari kod aturcara Java yang lebih canggih.

 

Bagi membolehkan sesebuah aplikasi menghantar email, beberapa library terbina dalam seperti System, Session dan MimeMessage perlu digabungkan. Java mempunyai senarai library terbina dalam yang sangat banyak.

 

Dengan pelbagai pilihan yang ada, seseorang pengaturcara tidak perlu menghafal sintaks yang banyak serta menjimatkan masa dan usaha dari segi pembangunan sesebuah aplikasi, serta mengelakkan kod aturcara dari ditulis berulang kali.

 

Tanpa membuang masa, mari kita mulakan latihan kali ini.

 

Latihan

 

Langkah 1: Layari laman web http://www.browxy.com dan tuliskan kod aturcara berikut di dalam ruangan editor.

 

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail {

  public static void main(String [] args) {    
     // Recipient’s email ID needs to be mentioned.
     String to = “abcd@gmail.com”;

     // Sender’s email ID needs to be mentioned
     String from = “web@gmail.com”;

     // Assuming you are sending email from localhost
     String host = “localhost”;

     // Get system properties
     Properties properties = System.getProperties();

     // Setup mail server
     properties.setProperty(“mail.smtp.host”, host);

     // Get the default Session object.
     Session session = Session.getDefaultInstance(properties);

     try {
        // Create a default MimeMessage object.
        MimeMessage message = new MimeMessage(session);

        // Set From: header field of the header.
        message.setFrom(new InternetAddress(from));

        // Set To: header field of the header.
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

        // Set Subject: header field
        message.setSubject(“This is the Subject Line!”);

        // Now set the actual message
        message.setText(“This is actual message”);

        // Send message
        Transport.send(message);
        System.out.println(“Sent message successfully….”);
     }catch (MessagingException mex) {
        mex.printStackTrace();
     }
  }
}

 

Langkah 2: Klik butang COMPILE & EXECUTE untuk melihat hasilnya.

Semakan

 

Di dalam kod aturcara tadi, kita telah menghasilkan aplikasi ringkas SendEmail yang boleh menghantar email. Di peringkat awal, kita telah mendaftar beberapa pembolehubah yang memegang nilai alamat email penghantar, penerima, serta pelayan (localhost).

 

Melalui class Properties, kita telah menetapkan SMTP (Simple Mail Transfer Protocol) sebagai protokol pilihan. Seterusnya, kita menggunakan class Session untuk membuka laluan penghantaran selama 30 saat di antara penghantar dan penerima.

 

Akhir sekali, kita menggunakan class MimeMessage untuk memegang semua maklumat penting dan menghantarnya di dalam satu pakej. Class MimeMessage akan sentiasa berkomunikasi dengan class Session sepanjang laluan penghantaran terbuka.

Para pegawai UTEM sedang mengikuti bengkel keselamatan laman HTML

 

Soalan

 

Sebelum ruangan minggu ini ditamatkan, anda perlu menyelesaikan beberapa soalan latihan. Sila ubahsuai kod aturcara tadi supaya:

 

  1. Ubah alamat email penghantar kepada alamat email anda.
  2. Ubah alamat email penerima kepada alamat email rakan baik anda.
  3. Tambah kandungan di dalam message.settext() supaya lebih dari sebaris.

 

Jika anda mempunyai sebarang pertanyaan atau cadangan, sila emelkan kepada farizgaskin@gmail.com dan kami akan cuba jawab sepantas mungkin. Sehingga bertemu lagi dalam ruangan yang sama minggu hadapan, selamat mencuba!

Leave a Reply

Your email address will not be published. Required fields are marked *