Kirim Email di PHP via PHP:PEAR

Mungkin banyak dari kita yang mengandalkan fungsi Mail() dalam pengiriman email baik notifikasi untuk blog maupun keperluan lain. Mail() cukup handal dan mudah diimplementasikan, namun adakalanya kita butuh mekanisme untuk autentikasi atau kondisi dimana Mail() secara langsung tidak dapat digunakan.

Ada banyak jalan menuju Roma, banyak jalan pula untuk pengiriman email, tergantung dari pendekatan apa yang diinginkan. Kali ini saya akan coba share mengenai penggunaan fungsi Mail di PHP:PEAR. Konsepnya sama dengan di built-in Mail di PHP tapi dengan fitur lebih, salah satunya attachment dan authentication. Khusus di contoh kali ini saya akan jelaskan bagai man cara mengirim email menggunakan Google Apps for Domain atau Gmail via PHP:PEAR

Langsung saja!

Cek dulu ketersediaan Mail di PHP:PEAR, buka console dan ketikkan perintah berikut:

  1. pear install mail
  2. pear install Net_SMTP
  3. pear install mail_mime
Jika anda menggunakan shared-hosting silakan kontak provider hosting anda utnuk mengaktifkan fitur ini, untuk DJ silakan kontak technical supportnya jika belum tersedia:D Buat HTML form, jangan lupa assign masing-masing field dengan name yang sesuai, setelah itu buat sebuah file untuk pemrosesan, saya beri nama tes.php
<?
require_once "Mail.php";
$to = "alamat_email_penerima@namadomain";
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "alamat_email_akun_gmail_anda@gmail.com";
$password = "password-akun-anda";
Sesuaikan parameter diatas dengan akun anda, bisa juga menggunakan Google Apps for Domain, selanjutnya kita akan coba mengambil data dari inputan form HTML sebelumnya:
$nama = $_POST['name']; // required
		$pengirim = $_POST['email']; // required
		$telpon = $_POST['telpon']; // not required
		$subjek = $_POST['subjek']; // required
		$pesan = $_POST['body']; // required
$email_message .= "Name: ".clean_string($nama)."\n";
		$email_message .= "Email: ".clean_string($pengirim)."\n";
		$email_message .= "Telephone: ".clean_string($telpon)."\n";
		$email_message .= "Subject: ".clean_string($subjek)."\n";
		$email_message .= "Comments: ".clean_string($pesan)."\n";
anda sesuaikan saja dengan kebutuhan di form yang anda miliki.
$headers = array ('From' => $pengirim,
'To' => $to,
'Subject' => $subjek);        

$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));        

$mail = $smtp->send($to, $headers, $email_message);
if (PEAR::isError($mail))
{
echo("<p>" . $mail->getMessage() . "</p>");}
else {
header('Location: http://namadomainanda.com/mailsent.html');
}
?>
Kode diatas akan mengirimkan email sesuai dengan parameter yang sebelumnya sudah disediakan(akun gmail/google apps for domain) menggunakan port 465 dan ssl(sesuai dengan petunjuk resmi google) plus mode auth yang wajib disertakan untuk autentikasi lalu mengirimkan semua isi variabel dalam form sebelumnya dalam bentuk array via fungsi mail() di PHP:PEAR. Terakhir bila email sukses dikirim akan redirect ke halaman tertentu. Penggunaan yang cukup simple dan saya rasa anda juga bisa melakukannya, untuk attachment dan fitur lainnya bisa dibaca di situs resminya: http://pear.php.net/package/Mail/redirected

Selamat mencoba!

Leave a Reply

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