Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
- Memahami proses pengiriman email
- Membuat program untuk mengirim email.
1. Proses Pengiriman
Email Aplikasi email sebenarnya adalah bentuk dari pelayanan SMTP (Simple Mail Transfer Protocol). SMTP adalah suatu protokol pesan untuk layanan pengiriman pesan email. Pengiriman pesan email bisa dilakukan tanpa harus memiliki account email pada SMTP server.
Untuk mengirimkan email, aplikasi yang akan dibuat harus menghubungi mail server yang akan memforward pesan ke mail server yang mengelola account email tujuan. Jadi hal pertama yang harus diketahui adalah alamat IP/nama mail server dan port yang digunakannya. Setelah mengetahui kedua hal tersebut, perlu juga diketahui protokol pesannya. Secara umum setiap pesan memiliki alamat email tujuan, email pengirim, email pengirim yang akan tampil di pesan, judul pesan dan isi pesan. Pengiriman email bisa menggunakan cara sederhana melalui program Telnet. Telnet memungkinkan pengguna untuk mengakses smtp/mail server melalui port 25 untuk mengirim email atau port 110 untuk mengakses Pop3 mail. Perintah yang bisa digunakan adalah sebagai berikut:
telnet namaserver port
Proses pengiriman email dapat dilakukan melalui langkah-langkah sebagai berikut:
- Melakukan koneksi ke mail server melalui port 25
- Menguji respon server (optional)
- Memberitahukan asal email
- Memberitahukan tujuan email
- Menuliskan data atau isi email
- Menutup koneksi.
Proses pengiriman dilakukan dengan memberikan perintah-perintah sebagai berikut:
- Mail from:
<email_pengirim>
untuk menunjukkan siapa pengirim email.
- Rcpt to:
<email_tujuan>
untuk menunjukkan siapa penerima email.
- Data untuk menuliskan pesan email. Data dapat berisi atribut subject, from dan to serta isi pesan. Isi data diakhiri dengan tanda titik( “.”).
- Quit untuk menutup koneksi dengan server mail.

Gambar 10.1 Contoh proses
2. Membuat Program
Bahasa Java telah menyediakan paket untuk mengakses socket melalui paket java.net. Adapun kelas yang akan digunakan untuk mengakses socket server adalah kelas Socket. Format penggunaannya adalah sebagai berikut:
Socket(“nama_server/ip_address”, port)
Untuk mengirimkan perintah ke server saat koneksi terjadi digunakan bantuan paket java.io seperti DataOutputStream
untuk menginput perintah ke server dan BufferedReader untuk mendapatkan respon dari server.
import java.net.*;
import java.io.*;
public class emailku {
public static void main(String[] argc) {
Socket s1;
DataOutputStream p1=null;
BufferedReader d1=null;
String recvreply;
try {
s1=new Socket("mail.sertifikasi.web.id",25);
p1=new DataOutputStream(s1.getOutputStream());
d1=new BufferedReader(new InputStreamReader(s1.getInputStream()));
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("HELO mail.sertifikasi.web.id\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("MAIL FROM:<felstly@gmail.com>\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("RCPT TO:<felix@sertifikasi.web.id>\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("DATA\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("Subject:Perkenalan\r\n");
p1.writeBytes("From:<felstly@gmail.com>\r\n");
p1.writeBytes("To:<felix@sertifikasi.web.id>\r\n");
p1.writeBytes("\r\n");
p1.writeBytes("Hello,\r\n");
p1.writeBytes("Saya hanya ingin memperkenalkan diri.\r\n");
p1.writeBytes("Silahkan kunjungi website kami di:\r\n");
p1.writeBytes("www.sertifikasi.web.id\r\n");
p1.writeBytes("\r\n");
p1.writeBytes("Felix\r\n");
p1.writeBytes("============\r\n");
p1.writeBytes(".\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
p1.writeBytes("QUIT\r\n");
recvreply=d1.readLine();
System.out.println("Server Response : " + recvreply);
s1.close();
System.out.println("Closed Connection with Server");
} catch(IOException e) {
System.out.println("Error in Connecting to Port");
}
}
}