Bagaimana Cara ASP.NET Mengirim Mail ?
Salah satu penggunaan yang paling umum sebuah website adalah mengirim email. Mengirim email dari sebuah situs web yang digunakan, menjadi tugas yang bisa dibilang cukup kompleks dan sulit. Dalam artikel ini, Anda akan melihat dua kelas yang berbeda dari .NET Framework yang digunakan untuk mengirim email dengan ASP.NET. Kelas System.Net.SmtpClient dan dan kelas System.Net.MailMessage.
The System.Net.SmtpClient Kelas
The SmtpClient kelas memfasilitasi pengiriman email dengan Simple Mail Transfer Protocol atau SMTP. Kelas SmtpClient digunakan untuk menghubungkan aplikasi ASP.NET Anda ke jaringan (baik internet atau jaringan lain) dan mengotentikasi Anda (jika perlu) ke SMTP mail server. Disinim, kami akan menggunakan beberapa properti dari kelas SmtpClient untuk terhubung ke server SMTP pada jaringan:
- Host Property : Host property digunakan untuk menentukan nama server SMTP yang terhubung dengan Anda.
- Port Property: Setiap sambungan pada jaringan terjadi melalui saluran tertentu pada jaringan yang disebut port. Komunikasi SMTP terjadi pada port 25 secara default . Default port property adalah 25 , tetapi jika server SMTP Anda memerlukan port yang berbeda , Anda dapat menentukan bahwa dapat menggunakan Port Property.
Tip : Ini biasa bagi server SMTP untuk tidak menggunakan port 25 . Tanyakan pada administrator jaringan, ISP , atau perusahaan hosting jika Anda tidak yakin port apa yang digunakan untuk server SMTP .
- Credentials Property : Kebanyakan SMTP server mengharuskan Anda memberikan username dan password atau mengotentikasi diri sendiri sebelum Anda dapat mengirim email . Beberapa server SMTP ( biasanya pada jaringan perusahaan ) memungkinkan Anda untuk menggunakan kredensial akun dan menjalankan kode ASP.NET Anda . Dalam kasus tersebut, Anda dapat menentukan untuk menggunakan kredensial default dalam aplikasi web ini. Namun dalam contoh ini, kami akan menentukan username dan password.
The System.Net.MailMessage Class
Kelas MailMessage menandakan pesan yang dikirim. Daftar berikut menunjukkan beberapa properti dari kelas MailMessage:
- To-Alamat email tujuan untuk pesan.
- From-Alamat email pengirim.
- Cc-Alamat email yang muncul pada baris CC.
- Bcc-Alamat email yang muncul pada baris BCC.
- Subjek-Subjek email itu.
- Lampiran-Daftar lampiran file yang disertakan dengan email.
- IsBodyHtml- Properti Boolean yang menentukan apakah property Body menggunakan kode HTML atau tidak.
- Body- Isi email yang dikirim. Ini adalah teks aktual dari pesan email.
Setelah Anda mengatur properti dari kelas MailMessage , Anda memanggil metode Send dan kelas SmtpClient yang digunakan untuk mengirim pesan .
Memodifikasi Configuration File untuk internal Email Settings
Dalam aplikasi ASP.NET dunia nyata , Anda mungkin mengirim email dari banyak halaman dalam aplikasi Anda . Jika properti SMTP ( seperti nama server, username, password , dan sebagainya ) berubah, tidak efisien jika harus membuat perubahan pada setiap halaman yang akan dikirim email. Untungnya , banyak sifat dari kelas SmtpClient yang dapat ditentukan dalam configuration file untuk aplikasi ASP.NET Anda . Jika Anda menetapkan properti di configuration file , Anda harus memodifikasi hanya configuration file saja. Jika salah satu dari mereka berubah dan semua halaman yang dikirimi email, secara otomatis akan menggunakan pengaturan baru .
Tip : Jika Anda menentukan pengaturan Anda di kode sisi server yang sudah ditentukan dalam configuration file , pengaturan yang Anda tetapkan dalam kode akan menimpa pengaturan dalam configuration file.
Menambahkan Konfigurasi Email ke web.config file
Konfigurasi Mail ditentukan di bagian <system.net> dari file web.config . File web.config tidak berisi bagian <system.net> secara default , sehingga Anda perlu menambahkan satu .
Buka aplikasi web dan kemudian buka file web.config di Visual Web Developer . Tambahkan kode berikut ke file web.config secara langsung sebelum elemen pembukaan <system.web> yang :
1 |
<code style="font-size: 12px; line-height: 18px;"><</code><code style="font-size: 12px; line-height: 18px;">system.net</code><code style="font-size: 12px; line-height: 18px;">></code> |
1 |
<code> </code><code><</code><code>mailSettings</code><code>> |
1 |
<code> </code><code><</code><code>smtp</code><code>> |
1 |
<code> </code><code><</code><code>network</code> <code>host</code><code>=</code><code>"smtp.yourServer.com" |
1 |
<code> </code><code>password</code><code>=</code><code>"yourPassword" |
1 |
<code> </code><code>userName</code><code>=</code><code>"yourUsername"</code> <code>/> |
1 |
</code><code></</code><code>smtp</code><code>> |
1 |
<code> </code><code></</code><code>mailSettings</code><code>> |
1 |
<code></</code><code>system.net</code><code>> |
Tip : Pengaturan yang Anda tentukan untuk server SMTP Anda adalah pengaturan sama yang Anda gunakan di email client Anda untuk mail server keluar untuk domain Anda . Perusahaan hosting Anda mungkin memiliki instruksi untuk mengatur email client di situs web mereka yang dapat Anda gunakan untuk menemukan pengaturan untuk configuration file Anda .
Menggunakan Perangkat Administrasi Situs Web
Anda juga dapat menggunakan Administration Tool Web Site untuk mengkonfigurasi pengaturan SMTP Anda . Administrasi Perangkat Situs Web memungkinkan Anda untuk menambahkan dan mengubah pengaturan SMTP dan meminimalkan kemungkinan kesalahan karena konfigurasi yang salah atau kesalahan ketik .
Tip : Bila menggunakan Web Site Administration Tool untuk mengkonfigurasi pengaturan SMTP . Semua entri adalah opsional . Jika Anda tidak memberikan nilai untuk properti yang diperlukan dalam file konfigurasi , Anda perlu memberikan dalam kode ASP.NET pada sisi server Anda .
Untuk menggunakan Administration Tool Web Site, konfigurasi pengaturan SMTP Anda dengan ikuti langkah berikut :
1. Buka website Anda dan klik tombol ASP.NET Configuration di bagian atas jendela Solution Explorer
2. Klik tab Application atau link Application Configuration di Web Site Administration Tool.
3. Klik link Configure SMTP Setting Email pada halaman Penerapan Administration Tool Web Site.
4. Masukkan nama server SMTP, seperti yang ditunjukkan pada Gambar 1.
5 . Masukkan port jika perlu . Dalam kebanyakan kasus , nilai default 25 tidak harus diubah .
6 . Masukkan alamat email di dari kotak teks jika diinginkan . Alamat email yang Anda masukkan di sini akan muncul sebagai pengirim email yang mengirimkan dari ASP.NET .
7 . Pilih metode otentikasi . Pilih Tidak jika server SMTP Anda tidak memerlukan otentikasi . Pilih Basic jika server SMTP Anda memerlukan otentikasi yang berbeda dari kredensial account yang kode ASP.NET0nya Anda gunakan . Pilih NTLM jika Anda ingin menggunakan kredensial akun dan menjalankan kode ASP.NET Anda .
8 . Klik Save untuk menyimpan pengaturan konfigurasi ke file web.config dalam aplikasi Anda .
Setelah Anda mengklik Simpan , Administrasi Perangkat Situs Web update otomatis ke file web.config Anda dengan perubahan dan segera berlaku .
Apa Yang Terjadi Ketika File Konfigurasi Tersimpan?
Setiap aplikasi ASP.NET berjalan di dalam area khusus dalam memori yang disebut application domain. Tujuan dari domain aplikasi adalah untuk menyediakan isolasi antara aplikasi ASP.NET yang berbeda . Aplikasi domain memastikan bahwa satu aplikasi ASP.NET tidak mengakses aplikasi ASP.NET lain .
Ketika sebuah domain aplikasi dijalankan , ASP.NET membaca informasi dalam configuration file untuk mengatur domain aplikasi . Kmudian mulai memantau folder dan file tertentu dalam aplikasi untuk perubahan. Jika perubahan terdeteksi , ASP.NET menutup domain aplikasi dan restart lagi sehingga setiap perubahan akan berlaku .
Ketika Anda membuat modifikasi ke file web.config aplikasi (baik dengan langsung memodifikasi file atau dengan memodifikasi secara tidak langsung dengan alat seperti Administration Tool Web Site ) , ASP.NET segera mendaur ulang kolam aplikasi sehingga konfigurasi baru berlaku segera ke aplikasi.
Contoh Kode untuk mengirim Email di ASP.NET tanpa pengaturan web.config ASP.net:
1 2 |
try { |
1 |
</code><code>MailMessage msg = </code><code>new</code> <code>MailMessage(); |
1 |
msg.To.Add(toId); |
1 |
</code><code>MailAddress frmAdd = </code><code>new</code> <code>MailAddress(frmyahoo); |
1 |
</code><code>msg.From = frmAdd; |
1 |
//Check user enter CC address or not |
1 |
</code><code>if</code> <code>(ccId != </code><code>""</code><code>) |
1 2 3 |
</code><code>{ </code>msg.CC.Add(ccId); </code><code>} |
1 |
</code><code>//Check user enter BCC address or not |
1 |
</code><code>if</code> <code>(bccId != </code><code>""</code><code>) |
1 2 |
</code><code>{ </code><code> </code><code>msg.Bcc.Add(bccId); |
1 |
</code><code>} |
1 |
</code><code>msg.Subject = msgsubject; |
1 |
</code><code>//Check for attachment is there |
1 |
</code><code>if</code> <code>(FileUpload1.HasFile) |
1 |
</code><code>{ |
1 2 |
</code><code>msg.Attachments.Add(</code><code>new</code> <code>Attachment( FileUpload1.PostedFile.InputStream, FileUpload1.FileName)); |
1 2 |
</code><code>} </code><code></code><code>msg.IsBodyHtml = </code><code>true</code><code>; |
1 |
</code><code>msg.Body = mailContent; |
1 |
SmtpClient mailClient = </code><code>new</code> <code>SmtpClient(</code><code>"smtp.mail.yahoo.com"</code><code>, 25); |
1 2 |
</code><code>NetworkCredential NetCrd = </code><code>new</code> <code>NetworkCredential frmyahoo, frmpwd); |
1 |
</code><code>mailClient.UseDefaultCredentials = </code><code>false</code><code>; |
1 |
</code><code>mailClient.Credentials = NetCrd; |
1 |
</code><code>mailClient.EnableSsl = </code><code>false</code><code>; |
1 |
</code><code>mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; |
1 |
</code><code>mailClient.Send(msg); |
1 |
clear(); |
1 |
</code><code>Label1.Text = </code><code>"Mail Sent Successfully"</code><code>; |
1 2 |
</code><code>} </code><code>catch</code> <code>(Exception ex) |
1 2 3 |
</code><code>{ </code><code>Label1.Text = </code><code>"Unable to send Mail Please try again later"</code><code>; </code>} } |
try
{
MailMessage mailMessage =
new
System.Net.Mail.MailMessage();
mailMessage.To.Add(userEmailAddress);
mailMessage.Subject =
"Subject"
;
mailMessage.Body =
"Body Text"
;
var smtpClient =
new
SmtpClient();
smtpClient.Send(mailMessage);
return
"Mail send successfully"
;
}
catch
(SmtpException ex)
{
return
"Mail send failed:"
+ ex.Message;
}
1 2 3 4 5 6 7 8 |
<system.net> <mailSettings> <smtp deliveryMethod="Network" from="<span style="color: #0000ff;">from@yourdomain.com</span>"> <network host="smtp server addresss" userName="<span style="color: #0000ff;">username</span>" password="<span style="color: #0000ff;">password</span>" defaultCredentials="false" port="xxx" enableSsl="true" /> </smtp> </mailSettings> </system.net> |
1 |