home Tip+Trick, Web, Windows Email Verifikasi Pendaftaran dengan PHP, MySQL dan SMTP Gmail

Email Verifikasi Pendaftaran dengan PHP, MySQL dan SMTP Gmail

logo gmailKetika registrasi pada sebuah website, biasanya website tersebut mengirimkan email ke alamat email yang didaftarkan. Emailnya berisi sebuah link yang harus di klik untuk verifikasi kebenaran alamat email yang didaftarkan. Kali ini kita akan bahas bagaimana mengirim email melalui PHP. Pengiriman email akan dilakukan melalui SMTP (Simple Mail Transfer Protoco). SMTP angprotokol  menetapkan proses pengiriman dan penerimaan e-mail dalam jaringan komputer, seperti internet. Biasanya dalam sebuah web hosting berbayar sudah disediakan SMTP server, namun ketika ketika akses untuk SMTP server tidak disediakan, saatnya menggunakan email gratisan. Gmail adalah salah satu email gratis dengan fasilitas SMTP dan POP3, kekurangannya hanya satu yaitu email yang dikirim bisa saja dikira palsu oleh yang menerima, karena tidak menggunakan domain yang sama dengan tempat mendaftar. ya sudahlah, karena ini hanya untuk pembelajaran, tak jadi masalah lah 😀

Pertama yang harus disiapkan adalah web server, pakai vps? serem? tidak juga, pakai local web server saja, jangan lupa ditambah database server. Kalau mau gampang, tinggal unduh paket xampp, bahkan ada paket yang tanpa install. ambilnya di http://www.apachefriends.org/en/xampp.html cara pakainya liat disitu juga ya 🙂

Server sudah siap, localhost sudah jalan, selanjutnya mari bikin form registernya, pasti sudah pada tau kan? kalau belum, nanti saya tambah 🙂 Intinya adalah buat form dengan isian username, password, email dan isian lain disesuaikan dengan kebutuhan. Databasenya juga gitu, satu lagi tambahkan field kode pada tabel tersebut. field kode ini akan diisi kode pendaftaran. kode pendaftaran ini akan dibuat dengan angka random yang di md5 biar agak seram dan susah ditebak. kode ini akan ditambahkan dalam database setiap user melakukan pendaftaran. contoh sql insertnya kira kira seperti ini:
[php]
$kode=md5(rand(0,10000));
[/php]
[sql]
INSERT INTO pengguna (username, password,email,isaktif kode)
VALUES ($username, $password, $email,’0′, ‘$kode’)
[/sql]
Kemudian, bagian mengirim email, tidak susah, langkah langkahnya adalah:

  1. Buka php.ini di apache/lib, hilangkan tanda titik koma (;) di depan extention=php_openssl.dll tujuannya adalah untuk mengaktifkan modul open ssl karena gmail make ssl. restar apache nya.
  2. download phpmailer di http://sourceforge.net/projects/phpmailer/ kemudian ekstrak ke folder ang sama dengan tempat naruh file untuk proses register.
  3. Siapkan sebuah alamat email gmail yang akan digunakan untuk mengirim email.
  4. tambahkan kode berikut pada baris tempat register berhasil

[php]
require("phpmail/class.phpmailer.php"); // path to the PHPMailer class
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Mailer = "smtp";
$mail->SMTPSecure = ‘tsl’;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "DIGANTI-USERNAME-GMAIL-NYA@gmail.com"; // SMTP username
$mail->Password = "DIGANTI-PASSWORD-GMAIL-NYA"; // SMTP password
$mail->From = "DIGANTI-USERNAME-GMAIL-NYA@gmail.com";
$mail->AddAddress($email);
$mail->Subject = "Konfirmasi Registrasi Website";
$mail->Body = "klik link berikut untuk validasi user http://ALAMAT-WEBSITE/validate.php?id=".$kode;
$mail->Send()
[/php]

yang perlu diganti adalah
  1. $mail->Username  diisi username gmail yang akan digunakan untuk mengirim email
  2. $mail->Password diisi password gmail yang akan digunakan untuk mengirim email
  3. $mail->From diisi alamat email yg mengirim email
  4. pastikan dalam $mail->AddAddress() adalah variabel yg berisi alamat email user yang baru mendaftar
  5. $mail->Body silahkan sesuaikan katakatanya.
Proses registrasi dan pengiriman email selesai. selanjutnya adalah bagaimana jika user meng klik alamat yg sudah dikirim via email? gampang, tinggal buat saja sebuah file validate . php , isinya kira kira untuk mengambil id kode yang dikirim, kemudian cari di database kode yang sesuai, kemuadian ubah field isaktifjadi 1. perintah sql nya kira kira seperti ini.

[sql]UPDATE pengguna SET isaktif=’1′ where kode=’$_GET[id]’
[/sql]

Selesai deh, untuk login tinggal filter berdasarkan isaktif, jika bernilai 0 jangan ijinkan login walau user dan passwordnya sudah benar. Jangan lupa tambahkan form validation ya. Oh iya hampir terlupa. karena ini menggunakan SMTP gmail, maka ketika mencoba register, komputer harus terhubung dengan internet. Kalau ada yang belum jelas silahkan komentar.

4 thoughts on “Email Verifikasi Pendaftaran dengan PHP, MySQL dan SMTP Gmail

Leave a Reply

Your email address will not be published. Required fields are marked *