- [message]
- Ringkasan
- Pada halaman ini, akan dijelaskan bagaimana cara membuat form pada VB .Net yang dapat digunakan untuk mengirim email.
VB .Net memungkinkan kalian untuk mengirim email melalui sebuah aplikasi. System.Net.Mail namespace berisi beberapa class yang dapat digunakan untuk mengirim email pada sebuah server Simple Mail Transfer Protocol (SMTP).
Apa itu SMTP?
SMTP (Simple Mail Transfer Protocol) adalah protokol untuk mengirimkan pesan email antar server. Ini adalah standar Internet untuk surat elektronik (email) transmisi. Port default TCP yang digunakan oleh SMTP adalah 25 dan koneksi SMTP dijamin dengan SSL, yang dikenal sebagai SMTPS.
SMTP Server
SMTP menyediakan satu set protokol yang menyederhanakan komunikasi pesan email antar server email. Kebanyakan nama server SMTP yang ditulis dalam bentuk “smtp.domain.com” atau “mail.domain.com”: misalnya, akun gmail akan merujuk ke smtp.gmail.com. Kebanyakan sistem email yang mengirim email menggunakan SMTP untuk mengirim pesan dari satu server ke server yang lain, apalagi pesan kemudian dapat diambil dengan email client baik menggunakan POP atau IMAP.
Tabel berikut ini berisi beberapa class yang umum digunakan:
S.N
|
Class
|
Description
|
1
|
Attachment
|
Mewakili lampiran ke e-mail.
|
2
|
AttachmentCollection
|
Menyimpan lampiran untuk dikirim sebagai bagian dari pesan e-mail.
|
3
|
MailAddress
|
Mewakili alamat dari email pengirim atau penerima.
|
4
|
MailAddressCollection
|
Menyimpan alamat e-mail yang terasosiasi dengan pesan e-mail
|
5
|
MailMessage
|
Mewakili sebuah pesan e-mail yang dapat dikirim menggunakan class SmtpClient.
|
6
|
SmtpClient
|
Memungkinkan aplikasi untuk mengirim e-mail dengan menggunakan Simple Mail Transfer Protocol (SMTP).
|
7
|
SmtpException
|
Mewakili eksepsi yang dilemparkan ketika SmtpClient tidak bisa menyelesaikan pengiriman atau operasi SendAsync.
|
Class SmtpClient
Class SmtpClient memungkinkan aplikasi untuk mengirim e-mail menggunakan Simple Mail Transfer Protocol (SMTP).
Tabel berikut ini berisi beberapa propertie umum yang digunakan dari class SmtpClient:
S.N
|
Property
|
Description
|
1
|
ClientCertificates
|
Menentukan sertifikat yang harus digunakan untuk membuat sambungan Secure Sockets Layer (SSL).
|
2
|
Credentials
|
Get atau Set kredensial yang digunakan untuk mengotentikasi pengirim.
|
3
|
EnableSsl
|
Menentukan apakah SmtpClient menggunakan Secure Socket Layer (SSL) untuk mengenkripsi koneksi.
|
4
|
Host
|
Get atau Set nama atau alamat IP dari host yang digunakan untuk SMTP transactions.
|
5
|
Port
|
Get atau Set port yang digunakan untuk SMTP transactions.
|
6
|
Timeout
|
Get atau Set sebuah nilai yang menentukan jumlah dari waktu setelah sinkron Send call times out.
|
7
|
UseDefaultCredentials
|
Get atau Set sebuah nilai Boolean yang mengontrol apakah DefaultCredentials dikirim melalui request.
|
Berikut ini adalah beberapa metode yang umum digunakan pada Class SmtpClient:
S.N
|
Method & Description
|
1
|
Dispose
Mengirim sebuah pesan QUIT pada SMTP Server, untuk mengakhiri koneksi TCP, dan melepaskan semua sumber daya yang digunakan oleh class SmtpClient.
|
2
|
Dispose(Boolean)
Mengirim sebuah pesan QUIT pada SMTP Server, untuk mengakhiri koneksi TCP, dan melepaskan semua sumber daya yang digunakan oleh class SmtpClient, dan dengan bebas memilih membuang sumber daya yang dikelola.
|
3
|
OnSendCompleted
Menciptakan event SendCompleted. Raises the SendCompleted event.
|
4
|
Send(MailMessage)
Mengirim pesan tertentu ke server SMTP untuk pengiriman.
|
5
|
Send(String, String, String, String)
Mengirim pesan tertentu ke server SMTP untuk pengiriman. Pengirim pesan, penerima, subjek, dan isi pesan yang ditentukan menggunakan String object.
|
6
|
SendAsync(MailMessage, Object)
Mengirim pesan tertentu ke server SMTP untuk pengiriman. Metode ini tidak memblok calling thread dan memungkinkan caller untuk melewati sebuah objek dengan metode yang dipanggil saat operasi selesai.
|
7
|
SendAsync(String, String, String, String, Object)
Mengirim pesan tertentu ke server SMTP untuk pengiriman. Pengirim pesan, penerima, subjek, dan isi pesan yang ditentukan menggunakan String object. Metode ini tidak memblok calling thread dan memungkinkan caller untuk melewati sebuah objek dengan metode yang dipanggil saat operasi selesai.
|
8
|
SendAsyncCancel
Membatalkan proses asynchronous untuk mengirim pesan ke email.
|
9
|
SendMailAsync(MailMessage)
Mengirim pesan tertentu ke SMTP server untuk pengiriman sebagai operasi asynchronous.
|
10
|
SendMailAsync(String, String, String, String)
Mengirim pesan tertentu ke SMTP server untuk pengiriman sebagai operasi asynchronous. Pengirim pesan, penerima, subjek, dan isi pesan yang ditentukan menggunakan String objek.
|
11
|
ToString
Mengembalikan String yang mewakili objek.
|
Contoh berikut ini menunjukkan bagaimana cara mengirim email menggunakan class SmtpClient.
Beberapa poin yang harus kalian catat adalah:
Beberapa poin yang harus kalian catat adalah:
- Anda harus menentukan host server SMTP yang Anda gunakan untuk mengirim e-mail. Host dan port properti akan berbeda untuk setiap host server. Saat ini kita akan menggunakan server gmail.
- Anda perlu memberikan Kredensial untuk otentikasi, jika diperlukan oleh server SMTP.
- Anda juga harus memberikan alamat email dari pengirim dan alamat email penerima menggunakan properti MailMessage.From dan MailMessage.To.
- Anda juga harus menentukan isi pesan menggunakan properti MailMessage.Body
Contoh
Pada contoh kali ini, mari kita membuat sebuah aplikasi simple yang akan digunakan untuk mengirim sebuah e-mail. Ikuti langkah-langkah berikut:
- Buat 3 buah label, 3 buah text box dan sebuah button pada form.
- Ubah text properti dari label masing-masing menjadi ‘From’, ‘To:’ dan ‘Message’.
- Ubah name properti daru text masing-masing menjadi txtFrom, txtTo dan txtMessage.
- Ubah text properti dari control button menjadi ‘Send’.
- Tambahkan code berikut pada code editor.
[Imports System.Net.Mail
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential("username@gmail.com", "password")
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "smtp.gmail.com"
e_mail = New MailMessage()
e_mail.From = New MailAddress(txtFrom.Text)
e_mail.To.Add(txtTo.Text)
e_mail.Subject = "Email Sending"
e_mail.IsBodyHtml = False
e_mail.Body = txtMessage.Text
Smtp_Server.Send(e_mail)
MsgBox("Mail Sent")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
End Sub
End Class]
Ketika kode diatas dijalankan, ia akan menampilkan jendela berikut, yang akan Anda gunakan untuk mengirim e-mail Anda, selamat mencoba.
- [message]
- Catatan
- Di gmail terdapat fitur keamanan, jika gmail diakses melalui aplikasi less secure (kurang aman) maka kalian tidak akan bisa mengakses gmail tersebut. Oleh karena itu, sebelum menjalankan form ini, pastikan fitur on pada less secure gmail kalian.