Pendahuluan
Kata E-mail bukan merupakan kata baru dalam kamus dunia informasi. Setiap orang pengguna internet kebanyakan pernah mengirim email bahkan mempunyai account mail lebih dari satu, tetapi sebagian kecil orang belum mengetahui bagaimana proses pengirim email itu sendiri apalagi membuat program untuk mengirim mail.
Untuk dapat mengirim email maka kita memerlukan suatu server mail tertentu untuk mengirimnya. Server mail ini bekerja dengan protokol tertentu yang dikenal dengan protokol SMTP (Simple Mail Transprot Protocol) dan umumnya protokol ini menggunakan port 25 untuk akses data.
RFC 821
Bagaimana caranya kita berkomunikasi dengan server SMTP? Apakah setiap server SMTP mempunyai cara berbeda-beda dalam melakukan komunikasi ? Terus, bagaimana email yang kita kirim dapat sampai ke tempat tujuan? Mungkin banyak lagi pertanyaan Anda mengenai ini. Oleh sebab itu diperlukan suatu kesepakatan bersama dalam bagaimana cara melakukan koneksi dan berkomunikasi dengan server SMTP. Standar yang dipakai dalam hal yang berhubungan dengan Simple Mail Transfer Protocol (SMTP) adalah RFC 821 , RFC itu singkatan dari Request for Comments.

Gambar 1. Model SMTP
Dalam RFC 821 dibahas bagaimana kita berhubungan dengan server SMTP dan mengirim email melalui server tersebut. Pada gambar 1 merupakan model pemakaian SMTP. Model ini mengikuti model komunikasi pada umumnya yang mana antara pengirim dan menerima mail membuat koneksi satu sama lainnya.
Sintaks SMTP Berdasarkan RFC 821
Ada banyak sintak dalam SMTP tetapi ada sintak yang minimal ada dalam proses berkomunikasi dan mengirim mail:

Prosedur Pengiriman Email
Beikut ini proses transaksi pengiriman email antara pengirim dan penerima. Keterangan S = Pengirim dan R = penerima , diasumsikan kita telah terhubung dengan server SMTP:

Bila penerima email lebih dari satu maka kita cukup melakukan looping pada sintak RCPT saja.
Implementasi Dalam Program Aplikasi Dengan C#
Bahasa C# merupakan bagian dari Framework .NET dan bahasa C# itu sendiri adalah bahasa pemrograman baru yang diperkenalkan oleh Microsoft. Penulis akan memperkenalkan bagaimana mengirim mail lewat SMTP dengan bahasa C# dengan mudah. Dalam aplikasi kali ini kita tidak menggunakan sintak low level (Win32 programming) ataupun pemrograman socket melainkan menggunakan kelas SmtpMail yang meng-encapsulate dari fungsi-fungsi dalam socket dan kelas MailMessage serta kelas MailAttachment merupakan kelas utilities untuk format message dan file yang di attachment.
Langkah-langkah ini untuk membuat aplikasi pengiriman email dengan C# antara lain:
1. Membuat project baru C# dengan pilihan Windows Application dan beri nama project yaitu SMTPmail.
Gambar 2. Tampilan program
2. Rancang GUI dari project ini seperti pada gambar 2 dan jangan lupa menambahkan windows forms: OpenFileDialog dalam project.
3. Menambahkan Reference pada project dengan cara klik menu Project->Add Reference (seperti pada gambar 3). Kemudian pilih System.Web.dll yang diperlihatkan pada gambar 4 dan tekan tombol Select. Jika selesai tekan tombol OK.

Gambar 3. Menambah Reference dalam project

Gambar 4. Pilih Reference System.Web.dll
4. Setelah selesai maka kita melakukan proses coding. Klik dua kali tombol Send maka akan mengarah ke source code editing, berikut ini source code-nya:
try
{
// prepare mail data
MailMessage msg = new MailMessage();
msg.From = m_sFrom.Text;
msg.To = m_sTo.Text;
msg.Cc = m_sCc.Text;
msg.Bcc = m_sBcc.Text;
msg.Subject = m_sSubject.Text;
msg.Body = m_sMessage.Text;
if(m_sAttachment.Text != "")
msg.Attachments.Add(new MailAttachment(m_sAttachment.Text));
// check if HTML mail format or not ?
if(m_bHtml.Checked)
{
msg.BodyFormat = MailFormat.Html;
}
else
{
msg.BodyFormat = MailFormat.Text;
}
// sending mail
SmtpMail.SmtpServer = m_sSMTP.Text;
SmtpMail.Send(msg);
MessageBox.Show("Mail has sent succesfully", "Information", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch(HttpException err)
{
MessageBox.Show(err.Message,
err.Source,
MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
5. Agar dapat menggunakan kelas SmtpMail dan MailMessage maka harus ditambahka namespace pada bagian atas dari souce code (file SMTPmail.cs)
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Web; // add this line code
using System.Web.Mail; // add this line code
6. Sedangkan souce code pada saat tombol attachment (tombol ...) diklik:
if(openFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK)
{
m_sAttachment.Text = openFileDialog1.FileName;
}
7. Sekarang kita melakukan proses debug dan run program. Isi semua data dalam EditBox yang mana Cc dan Bcc itu optional artinya boleh diisi atau tidak.
Jika ada yang masih ada dipertanyakan mengenai C# ini, anda dapat bergabung dalam mailing list C# Indonesia. Di mailing list ini, Anda dapat bertukar pikiran mengenai C# maupun .NET. Untuk bergabung cukup mengirim email kosong ke csharp_indo-subscribe@yahoogroups.com dengan subject subscribe atau kunjungi situs
http://groups.yahoo.com/group/csharp_indo.
Source code lengkap bisa di download di smtpcsharp1.zip.
Reference
- MSDN .NET Framework
- RFC
Demikianlah tulisan singkat mengenai pengiriman e-mail dengan
memanfaatkan protokol SMTP dan C#. Semoga bisa bermanfaat bagi semua pihak. Jika ada saran atau komentar bisa dikirimkan ke
agusasia@yahoo.com. Untuk membaca tulisan menarik lainnya silakan saja langsung menuju ke
www.sony-ak.com.
Terimakasih.
| Send
your comments or suggestions |
|
|
|