Biasanya, CGI mailto.exe digunakan untuk mengimplementasikan WEBMAIL, menulis pernyataan "< form action="mailto:email address" method=post >" dalam file HTML atau memanggil fungsi WINDOWS API. Menggunakan WINDOWS API dan menulis pernyataan "< form action="mailto:email address" method=post >" di file HTML keduanya memerlukan browser pengguna untuk memuat perangkat lunak seperti EXCHANGE, OutlookEXPRESS, atau OUTLOOK, dan ada juga beberapa browsing Server tidak mendukung pernyataan MAILTO. Penggunaan CGI untuk mengimplementasikan WEBMAIL tidak memiliki persyaratan pada browser pengguna, namun tidak efisien. Teknologi CGI secara bertahap digantikan oleh teknologi ISAPI/NSAPI. Artikel ini akan membahas implementasi WEBMAIL menggunakan teknologi ISAPI.
Sangat mudah untuk mengembangkan program Web Server menggunakan Delphi 4. Delphi 4 menyediakan sejumlah besar komponen dan objek untuk mendukung pengembangan program Web Server. Berikut ini adalah contoh bagaimana menggunakan DELPHI untuk mengembangkan program ISAPI WEBMAIL yang merespon masukan pengguna. Hanya pengguna yang terdaftar di server pengirim yang dapat mengirim email melalui browser. Demi kesederhanaan, program ini tidak menjamin kerahasiaan data yang dikirimkan.
Pertama, instal mesin database dbe di server WEB, dan atur alias database: yh, arahkan ke file database user.db yang berisi nama pengguna dan kata sandi pengguna. Kemudian buat dua file HTML, masing-masing diberi nama: dl.html, qd.html, dan letakkan di direktori default server WEB (misalnya: C: INETPUBWWWROOT).
Isi dl.html adalah sebagai berikut:
<html>
< head >< title >Sistem Pengiriman Email</ /title >< /head >
<tubuh>
<h1>Sistem pengiriman email</h1>
< p > Silakan masukkan nama pengguna dan kata sandi Anda. < /p >
< formulir metode="post" action="/scripts/xsmd" >
< p >Nama pengguna: < input type="teks" panjang=10
nama="nama pengguna" >
Kata sandi: < tipe masukan = "kata sandi"
panjang=10 nama="kata sandi" >< /p >
< p >< masukan type="kirim" value="OK" >
< input type="reset" value="Hapus" >< /p >
< /bentuk>
< /tubuh >
< /html >
Isi file qd.html adalah sebagai berikut:
< html >< head >< title >Isi formulir</ /title >< /head >
<tubuh>
< formulir metode="posting" tindakan="umpan balik" >
< p >Silakan masukkan alamat email penerima:toalamat:
< masukan tipe = "teks" panjang = 20
nama=”alamat” >< /p >
< p >Silakan isi subjeknya. < tipe masukan = "teks"
panjang=20 nama="subjek" >< /p >
<p>Isi:</p>
< p >< masukan tipe = "area teks" panjang = 40
lebar=40 nama=”badan” >< /p >
< p >< masukan type="kirim" value="OK" >
< input type="reset" value="Hapus" >< /p >
< /bentuk>
< /tubuh >
< /html >
Buat aplikasi WEB SERVER berbasis ISAPI baru di DELPHI dan tambahkan nmsmtp1, query1, dan pageproducer1 secara manual.
Diantaranya: properti pageproducer1: htmlfile: c:inetpubwww.rootqd.html. Properti:host nmsmtp1 (alamat server email pengirim.) adalah smtp.netease.com di sini. pelabuhan:25. Variabel globalnya adalah: sername:string;flag:boolean;
Tambahkan item tindakan dengan jalur /umpan balik, kodenya sebagai berikut:
prosedur TWebModule1.WebModule1WebActionItem1
Tindakan(Pengirim: TObject;
Permintaan: Permintaan TWeb;
TWebResponse; var Ditangani: Boolean);
Jumlah Var: bilangan bulat;
S: tali;
Mulai
Query1.close;
Query1.sql.hapus;
S:='pilih hitungan(nama pengguna) dari
pengguna.db di mana nama pengguna=”';
S:=s+request.contentfields.values['nama pengguna']+'"';
S:=s+' dan kata sandi=”';
S:=s+request.contentfields.values['psword']+'"';
Query1.sql.tambahkan(S);
Kueri1.terbuka;
Jika query1.count=0
lalu respon.content:='< html >< head >< title >
< /title >< body >Nama pengguna dan kata sandi salah, silakan masukkan kembali.
< /tubuh>< /html >'
Kalau tidak
Nama Pengguna:=request.contentfields.values['nama pengguna'];
Response.content:=pageproducer1.content;
Akhir;
Tambahkan item tindakan lain dengan jalur /sendmail.
Kode programnya adalah sebagai berikut:
prosedur TWebModule1.WebModule1Web
ActionItem2Action(Pengirim: TObject;
Permintaan: Permintaan TWeb;
TWebResponse; var Ditangani: Boolean);
Var tubuh:string;
Mulai
Bendera:=benar;
body:=request.contentfields.values['body'];
Halamanproducer1.htmldoc.clear;
Pageproducer1.htmldoc.add('< html >< body >');
Nmsmtp1.postmessage.clear;
Nmsmtp1.postmessage.fromaddress:=nama pengguna+
'@netease.com';
Nmsmtp1.postmessage.from:=nama pengguna;
Nmsmtp1.postmessage.body.add(body);
Nmsmtp1.postmessage.toaddress.add
(permintaan.contentfields.values['toaddress']);
Nmsmtp1.postmessage.subjek:=
request.contentfields.values['subjek'];
Nmsmtp1.koneksi;
Jika flag=true maka mulai Nmsmtp1.sendmail;
nmsmtp1.ketidakpuasan;akhir
halamanproducer1.htmldoc.add
('< /tubuh>< /html >');
respon.content:=pageproducer1.content;
akhir;
Peristiwa yang meningkatkan nmsmtp1 adalah sebagai berikut:
prosedur TWebModule1.NMSMTP1Connect(Pengirim: TObject);
mulai
halamanproducer1.htmldoc.add
('< p >Sudah terhubung ke server email keluar</p>');
akhir;
prosedur TWebModule1.NMSMTP1Koneksi
Gagal(Pengirim: TObject);
mulai
bendera:=salah;
halamanproducer1.htmldoc.add
('< p >Koneksi gagal< /P >');
akhir;
prosedur TWebModule1.NMSMTP1ConnectionDiperlukan
(var Ditangani: Boolean);
mulai
pageproducer1.htmldoc.add('< p >Membutuhkan koneksi</p>');
akhir;
prosedur TWebModule1.NMSMTP1Failure (Pengirim: TObject);
mulai
pageproducer1.htmldoc.add('< p >Gagal mengirim email</p>');
bendera:=salah;
akhir;
prosedur TWebModule1.NMSMTP1Header
Tidak lengkap(var ditangani: Boolean;
hiType: Bilangan Bulat);
mulai
pageproducer1.htmldoc.add('< p >head tidak lengkap</ /p >');
bendera:=salah;
akhir;
prosedur TWebModule1.NMSMTP1InvalidHost
(var Ditangani: Boolean);
mulai
pageproducer1.htmldoc.add('< p >
Alamat server email pengirim tidak valid</p>');
bendera:=salah;
akhir;
prosedur TWebModule1.NMSMTP1RecipientNot
Ditemukan (Penerima: String);
mulai
halamanproducer1.htmldoc.add
('< p >Alamat email yang diterima salah</p>');
bendera:=salah;
akhir;
prosedur TWebModule1.NMSMTP1Sukses(
Pengirim: TObject);
mulai
pageproducer1.htmldoc.add('< p >
Email berhasil terkirim</ /p >');
akhir;
Simpan proyek sebagai sendmail.dpr, kompilasi dan letakkan di jalur file yang dapat dieksekusi dari server WEB (seperti: c:intpubscripts), Anda dapat merespons input pengguna dari file HTML dl.htm, dan jika pengguna nama pengguna dan kata sandi benar, Anda dapat masuk ke halaman pengiriman email. Pengguna dapat mengirim email setelah mengisi alamat email, subjek, dan konten. Program ini melewati debugging pada NT SERVER.