Sunday - May 18, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 11 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Mengetahui Daftar Seluruh MAC Address Pada Suatu Subnet (3854)

»

Penemuan Floppy Disk Drive oleh Alan Shugart (2601)

»

Melakukan Close Form pada Saat Event OnCreate atau OnShow pada Borland Delphi (3140)

»

Apa itu Blog dan Bagaimana Blog Bisa Populer Saat Ini (2565)

»

Belajar Programming dari Blog Para Programmer di Internet (4452)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Stored Procedure SQL Server Untuk Mengirim E-mail Dengan Komponen JMail

Author: Sony Arianto Kurniawan
Published: May 07, 2002
Visits: 3042 - Category: SQL Server
 
     
 

Hello pembaca. Anda yang suka bergelut dengan SQL Server tentunya sudah tidak asing lagi dengan operasi-operasi database seperti SELECT, INSERT, UPDATE, DELETE ataupun operasi-operasi manajemen database seperti BACKUP, RESTORE, CREATE dan lain sebagainya. Nah kali ini penulis akan membuat hidup Anda dengan SQL Server lebih hidup lagi dengan membuat suatu stored procedure yang asyik punya. Sebelum kita lanjut maka kita simak dulu pesan-pesan berikut ini.

Tulisan ini bersifat terbuka dan Anda bisa mengirimkan komentar ke sony-ak@sony-ak.com. Anda dilarang keras mengutip sebagian atau seluruh tulisan ini tanpa menyebutkan sumber aslinya. Penulis tidak bertanggung jawab atas segala hal yang ditimbulkan akibat tulisan ini.

Sebelum kita mulai maka ada baiknya untuk mengetahui sejenak yang dimaksud dengan stored procedure. Stored procedure adalah sekumpulan perintah-perintah SQL yang tersimpan dalam SQL Server. Procedure ini sudah dalam keadaan ter-compile di server dan siap dipanggil apabila diperlukan. Untuk lebih jelasnya silakan Anda baca buku-buku SQL Server khususnya yang menyangkut masalah stored procedure. OK, kita kembali lagi ke masalah utama. Stored procedure yang akan kita buat kali ini adalah stored procedure untuk mengirimkan e-mail. Di dalam SQL Server sendiri sebenarnya sudah terdapat stored procedure seperti ini yaitu xp_sendmail, hanya saja lumayan ribet untuk men-setting feature SQL Mail di SQL Server ini. Ribetnya gimana sih? Ya pokoknya ribet deh, sampai-sampai penulis saja masih bingung sampe detik ini.

Kita tinggalkan saja feature SQL Mail ini dan kita akan membuat stored procedure yang lain yaitu dengan memanfaatkan object e-mail w3 JMail dari Dimac. JMail adalah suatu komponen COM berupa file dll yang fungsinya dapat untuk mengirim atau menerima e-mail. Selain itu pada komponen ini terdapat pula fasilitas enkripsi dan mail merge. Dan yang paling penting komponen w3 JMail ini GRATIS, Anda bisa dapatkan di website-nya www.dimac.net. Penulis menggunakan w3 JMail versi 4.3. Gimana sih kok SQL Server bisa mengakses komponen JMail untuk mengirim file? Terimakasih kepada SQL Server yang sudah menyediakan beberapa built-in stored procedure OLE automation. Stored procedure OLE automation di SQL Server adalah:

1. sp_OACreate, untuk membuat instance dari suatu COM object
2. sp_OADestroy, untuk menghapus instance dari suatu COM object
3. sp_OASetProperty, untuk men-set properti dari suatu COM object dengan nilai yang baru
4. sp_OAGetProperty, untuk mendapatkan nilai properti dari suatu COM object
5. sp_OAMethod, untuk memanggil method dari suatu COM object
6. sp_OAStop, wah kalo ini mah gue belon ngerti terjemahannya :) silakan baca help-nya
7. sp_OAGetErrorInfo, untuk mendapatkan informasi error dari OLE automation

Penulis tidak akan membahas stored procedure OLE automation SQL Server pada tulisan ini. Hal itu mungkin akan penulis sajikan pada kesempatan yang lain. Script stored procedure di bawah penulis beri nama sp_SendMail_JMail dan memiliki sembilan parameter. Parameter utama yang harus ada yaitu @RecAddr (alamat e-mail tujuan) dan @SMTPServer (alamat SMTP server). Jadi untuk bisa mengirimkan e-mail Anda cukup mengisi dua parameter di atas, tentu saja dengan parameter yang lain akan diisi dengan nilai default masing-masing. Untuk parameter lain penulis kira sudah cukup jelas bagi pembaca (yang sudah mengerti stored procedure) tetapi mungkin masih ada yang bingung antara parameter @Body dan @BodyFromFile. Dua parameter tersebut memiliki fungsi yang sama hanya saja cara pengambilan datanya yang berbeda. Jika Anda ingin menulis langsung body e-mail Anda pada saat menjalankan stored procedure maka Anda bisa menggunakan parameter @Body, contohnya @Body='Ini body e-mail saya...'. Tetapi jika Anda ingin mengisi body e-mail dengan text dari suatu text file di komputer Anda maka Anda bisa menggunakan parameter @BodyFromFile, contohnya @BodyFromFile='c:\bodymail.txt'.

OK, sekarang silakan saja Anda ketik script stored di bawah ini pada SQL Query Analyzer atau dapat juga melalui SQL Server Enterprise Manager.

-- Name: sp_SendMail_JMail
-- Version: 1.00
-- Description: Send mail using w3 JMail free component
-- Author: Sony Arianto Kurniawan <sony-ak@sony-ak.com>
-- Home Page: http://www.sony-ak.com/

create procedure sp_SendMail_JMail
@FromAddr varchar(255) = 'sqlserver@sony-ak.com', -- from e-mail
@FromName varchar(255) = 'SQL Server featuring JMail', -- from name
@RecAddr varchar(255), -- recipient address
@RecName varchar(255) = '', -- recipient name
@Attachment varchar(1000) = '', -- attach file path
@Subject varchar(255) = '', -- e-mail subject
@Body varchar(8000) = '', -- e-mail body
@BodyFromFile varchar(1000) = '', -- e-mail body that comes from file
@SMTPServer varchar(255)
as
declare @obj int
declare @res int
declare @ires int
declare @ires2 varchar(255)
exec @res = sp_OACreate 'jmail.Message', @obj out
if @res <> 0
begin
return 1
end
exec @res = sp_OAMethod @obj, 'AddHeader', NULL, 'App-Sender','SQL Server featuring JMail (stored procedure)'
if @res <> 0
begin
return 1
end
exec @res = sp_OASetProperty @obj, 'From', @FromAddr
if @res <> 0
begin
return 1
end
exec @res = sp_OASetProperty @obj, 'FromName', @FromName
if @res <> 0
begin
return 1
end
if @RecName = ''
begin
exec @res = sp_OAMethod @obj, 'AddRecipient', NULL, @RecAddr
if @res <> 0
begin
return 1
end
end
else
begin
exec @res = sp_OAMethod @obj, 'AddRecipient', NULL, @RecAddr,@RecName
if @res <> 0
begin
return 1
end
end
if @Attachment <> ''
begin
exec @res = sp_OAMethod @obj, 'AddAttachment', @ires2 out, @Attachment
if @res <> 0
begin
return 1
end
end
exec @res = sp_OASetProperty @obj, 'Subject', @Subject
if @res <> 0
begin
return 1
end
if @BodyFromFile <> ''
begin
exec @res = sp_OAMethod @obj, 'AppendBodyFromFile', NULL, @BodyFromFile
if @res <> 0
begin
return 1
end
end
else
begin
exec @res = sp_OASetProperty @obj, 'Body', @Body
if @res <> 0
begin
return 1
end
end
exec @res = sp_OAMethod @obj, 'Send', @ires out, @SMTPServer
if @res <> 0
begin
return 1
end
if @ires <> 1
begin
return 1
end
return 0

Sekarang Anda bisa meng-execute script di atas dan stored procedure akan otomatis tersimpan pada database yang aktif saat Anda mengeksekusi script. Mari kita coba stored procedure yang baru kita buat ini. Penulis akan memberi contoh untuk mengirim e-mail ke alamat ivani@sony-ak.com dengan file attachment 'c:\data\mylove.gif' dengan menggunakan SMTP Server milik Sony AK Knowledge Center (mail.sony-ak.com). Berikut ini adalah contohnya:

declare @hasil
exec @hasil = sp_SendMail_JMail
@RecAddr='ivani@sony-ak.com', @Subject='Kepada Esa Ivani',
@SMTPServer='mail.sony-ak.com',@Body='Hello .... ini data file yang diminta...',@Attachment='c:\data\mylove.gif'

Pada contoh diatas variabel @hasil akan menampung hasil kembalian dari eksekusi sp_SendMail_JMail. Nilai variabel @hasil akan bernilai 1 apabila gagal dan 0 apabila sukses mengirimkan e-mail.

OK, selamat mencoba. Terakhir penulis ingin mengucapkan thanks berat kepada orang-orang berikut:

- Mr. Tjipto "chepot" Prakosa, thanks atas komponen w3 JMail nya ;) Very cute pak.
- Esa Ivani, thanks atas support-nya yang ultra gede ;) I'll always love you girl.

Jika ada kritik atau komentar silakan kirim ke sony-ak@sony-ak.com. Untuk membaca artikel-artikel menarik lainnya silakan kunjungi Sony AK Knowledge Center.

Selamat mencoba ;) Mission completed on 00:44.

File script stored procedure sp_SendMail_JMail bisa Anda download di sini.




 Recommended articles
 

»

Membuat Hasil Pencarian Google Anda Selalu "Open New Window" pada Web Browser (2642)

»

Membuat Guest Book dengan PHP + MySQL + Apache (8949)

»

Tips .NET: Mendeteksi Versi .NET Framework yang Ada pada Komputer Anda (1084)

»

Mengenal Bahasa Pemrograman Erlang (2654)

»

Mengenal LDAP (Lightweight Directory Access Protocol) (1693)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com