How to send email using C# ?

Pertanyaan ini biasanya akan muncul disaat – saat terakhir kita mengerjakan project. UI sudah kelihatan, input sudah berhasil, saat memberikan notifikasi kepada user tentang hal – hal yang berkaitan dengan mereka. Dan email selalu menjadi andalan utama. Ok, kita tidak akan bercerita, kenapa harus email.

Sekarang yang akan kita bahas adalah bagaimana cara mengirimkan email dengan menggunakan C# dan .NET Framework 2.0. Pada awal kemunculannya, library mail ini berada dalam System.Web.Mail. Tapi seiring dengan perkembangannya, kemudian pindah ke System.Net.Mail. So, bagaimana menggunakannya? Berikut kodenya :

croppercapture2

Simple kan ? Cukup simple. Tapi ingat…. This code only work if there is smtp in your local machine. So, how to use SMTP server at another machine/pc. Or maybe we want to use our Google mail as SMTP server…..

Here is the code :

smptmailnetwork

So simple, is it ??. Happy send email using C#

Advertisements

Sharepoint Series : How to Create Data Connection Library

Artikel kali ini akan menjelaskan langkah – langkah membuat data connection library di sharepoint server. Diharapkan, setelah membaca artikel ini, dapat mempermudah dalam proses development form InfoPath, terutama yang banyak menggunakan koneksi kedatabase. Ok, mari kita mulai… 😀

Step 1 :

Buatlah sebuah Library dari menu Site Action –> Create –> Data Connection Library. Isikan semua property yang dibutuhkan. [ Name and Description, Navigation -> pilih No, Version History -> Pilih No ]

Step 2 :

Buatlah sebuah Data Connection Definition dengan format XML, bisa menggunakan sample berikut :

   1: <?xml version="1.0" encoding="UTF-8"?>
   2: <?MicrosoftWindowsSharePointServices ContentTypeID="0x010100B4CBD48E029A4ad8B62CB0E41868F2B0"?>
   3: <udc:DataSource MajorVersion="2" MinorVersion="0" xmlns:udc="http://schemas.microsoft.com/office/infopath/2006/udc">
   4:     <udc:Name>MyDataDefinition</udc:Name>
   5:     <udc:Description>Format: UDC V2; Connection Type: Database; Purpose: ReadOnly;</udc:Description>
   6:     <udc:Type MajorVersion="2" MinorVersion="0" Type="Database">
   7:         <udc:SubType MajorVersion="0" MinorVersion="0" Type=""/>
   8:     </udc:Type>
   9:     <udc:ConnectionInfo Purpose="ReadOnly" AltDataSource="">
  10:         <udc:WsdlUrl/>
  11:         <udc:SelectCommand>
  12:             <udc:ListId/>
  13:             <udc:WebUrl/>
  14:             <udc:ConnectionString>
  15:                 Provider=SQLOLEDB.1;
  16:                 Initial Catalog=MyTestDB;Data Source=myserver;
  17:                 User ID=myuser;Password=mypassword;Persist Security Info=True;Use Procedure for Prepare=1;Auto Translate=True;
  18:                 Packet Size=4096;Workstation ID=mypc;Use Encryption for Data=False;Tag with column collation when possible=False</udc:ConnectionString>
  19:             <udc:ServiceUrl UseFormsServiceProxy="false"/>
  20:             <udc:SoapAction/>
  21:             <udc:Query>
  22:                 select * from mytable where id=null
  23:             </udc:Query>
  24:         </udc:SelectCommand>
  25:         <udc:UpdateCommand>
  26:             <udc:ServiceUrl UseFormsServiceProxy="false"/>
  27:             <udc:SoapAction/>
  28:             <udc:Submit/>
  29:             <udc:FileName>Specify a filename or formula</udc:FileName>
  30:             <udc:FolderName AllowOverwrite=""/>
  31:         </udc:UpdateCommand>
  32:         <!--udc:Authentication><udc:SSO AppId='' CredentialType='' /></udc:Authentication-->
  33:     </udc:ConnectionInfo>
  34: </udc:DataSource>

Save menjadi file dengan extention udcx. Bagian mana saja yang harus anda modifikasi ?

  • <udc:Name></udc:Name>, ini untuk mendefinisikan nama Connection Library kita. Buatlah berbeda dgn yang lainnya
  • <udc:ConnectionString></udc:ConnectionString>, ini bagian dimana kita mendeklarasikan kemana koneksi akan di lakukan. pastikan semua informasi yang dimasukkan benar ( username, password ) agar bisa konek dengan database yang diinginkan. Bagi yang biasa main-main dengan Connection String di .NET, bentuk ini adalah bentuk yang biasa.
  • <udc:Query></udc:Query>, pada bagian ini, dispesifikasikan data yang ingin di ambil. Ini adalah bentuk SQL statement biasa, yang lazim digunakan. Bagaimana jika kita ingin dinamik ? hehehe,, tunggu saja bagian berikutnya.

Step 3:

Langkah selanjutnya adalah upload file udcx yg telah kita buat tadi, ke library yang kita buat pada langkah 1.  Yang harus diperhatikan adalah, file yang kita upload tidak bisa langsung digunakan, karena statusnya masih pending. So, you must approved it first. Letakkan mouse pointer pada nama file yang baru saja di upload, klik edit -> pilih approve/reject. Akan muncul form approval, pilih approve, kemudian pilih ok. Done. Connection Library kita sudah siap untuk digunakan. Congratulation……

Ok, itu saja dulu. Pada bagian selanjutnya, akan dibahas bagaimana menggunakannya pada InfoPath Form. Selamat Belajar

Subsonic, Making your development happy !!!

Pertama dengar subsonic, sedikit bingung. Barang apa lagi nih. Katanya sih ORM. Ya… mirip2 dengan  NHibernate gitu deh. Awalnya males buat ngetestnya. Maklum, hampir semua ORM tidak support dengan SP ( Stored Procedure ). Maklum, di company tempatku bekerja sedikit unik. kalo bisa, semua harus pake SP. Dan memang lebih mudah sih jadinya :).

Tapi setelah baca-baca beberapa halaman dari websitenya, jadi kepingin nyoba. Didownloadlah mahluk satu ini dari sumbernya.

Oke, setelah diunduh, mulailah install di pc. Tinggal next dan next, akhirnya selesai. Sekarang tinggal buat sebuah project buat test. Berikut langkah-langkahnya :

Read more of this post

Passing by value and Passing by reference

Beberapa waktu lalu, di milis dotnet ada pertanyaan dari anggota mengenai passing by value dan reference. Simple memang, tapi penjelasannya memang harusnya tidak sesimple yang dipikirkan oleh orang awam ( termasuk saya 😛 ). Dari sekian banyak jawaban, akhirnya mas Norman memberikan jawaban yang lengkap ( apa dan mengapa ). Agar rekan – rekan yang lain yang mungkin tidak ikut milis dapat juga mengetahuinya, berikut petikan jawaban dari mas Norman. ( contoh dalam C# )

Main()
{
A a = new A();  // Main-baris 1
pass(a) // Main-baris 2
}

void pass(A x)
{
A b = new A(); // Pass-baris 1
x = b; // Pass-baris 2
}

Read more of this post