Tuesday, October 27, 2015

Membuat fitur kirim email dengan codeigniter dan phpmailer

Membuat fitur kirim email dengan codeigniter 3.0 dan phpmailer
Membuat fitur kirim email dengan codeigniter dan phpmailer - Hello, postingan ini merupakan postingan perbaikan dari artikel sebelumnya. Dikarenakan artikel sebelumnya banyak yang komplen karena banyak errornya, selain hal itu code yang di gunakan bisa di bilang sudah ketinggalan, makanya kali ini saya ingin coba meregenerasi artikel tersebut.

Postingan sebelumnya : Mengirim-email-dengan-php-codeigniter.

Spesifikasi alat-alat yang saya pakai :
  • Xampp 1.8.0 (php 5.4.4)
  • Php framework codeigniter 3.0
  • Library PhpMailer (download disini)

Library
Setelah selesai mengkonfigurasi, sekarang kita akan meletakan library Phpmailer yang sudah di download sebelumnya.
  • Pertama buka file RAR PhpMailer yang sudah di download.
phpmailer master

  • (Lihat pada gambar di atas) , Copy file class.phpmailer.php , class.smtp.php dan PHPMailerAutoload.php ke folder libraries yang ada pada CI di direktori application/libraries .Untuk lebih jelas lihat gambar di bawah.
libraries


Controllers
Untuk sample, silahkan salin function di bawah ini


public function mailku() {
 require_once(APPPATH.'libraries/PHPMailerAutoload.php');

 $mail = new PHPMailer;

 $mail->isSMTP();
 $mail->Host = 'mail.domain.com'; //nama "domain" ganti sesuai nama domain anda. misal domain anda satuan.com maka bentuk host mailnya adalah mail.satuan.com
 $mail->SMTPAuth = true;
 $mail->Username = 'email@domain.com'; //email dari domain anda, untuk cara pembuatan email akan di bahas di bawah
 $mail->Password = 'sangat rahasia'; //masukan kata sandi
 $mail->Port = 587; //port tidak usah di ubah, biarkan 587

 $mail->setFrom('email@domain.com', 'xyz'); //email pengirim
 $mail->addAddress('penerima@gmail.com', 'penerima'); //email penerima
 $mail->addReplyTo('apa@gmail.com', 'apa');
 $mail->isHTML(true);

        ///atur pesan email disini
 $mail->Subject = 'Here is the subject';
 $mail->Body    = 'This is the HTML message body in bold!';
 $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

 if(!$mail->send()) {
  echo 'Message could not be sent.';
  echo 'Mailer Error: ' . $mail->ErrorInfo;
 } else {
  echo 'Message has been sent';
 }
}
Untuk keterangan sudah saya sertakan pada sample function di atas

Cara Membuat Email Di Cpanel

  • Login ke cpanel
  • Masuk ke menu account

  • Isi nama email dan password

  • Klik Create Email

Note : Tidak akan bisa jalan jika di jalankan di localhost, test di server langsung. JIka sudah di test, jangan lupa cek di spam kalau di inbox tidak ada.

Pengaturan untuk kamu yang ingin menggunakan smtp google:

$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'kamu@gmail.com';
$mail->Password = 'abcdefg'; //masukan kata sandi

$mail->SMTPSecure = 'TLS'; 
$mail->Port = 587; //port tidak usah di ubah, biarkan 587

$mail->setFrom('test@haha.com', 'xyz'); //email pengirim
$mail->addAddress('kamu@gmail.com', 'penerima'); //email penerima
$mail->addReplyTo('dia@gmail.com', 'apa');
$mail->isHTML(true);


$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send())
{
 echo 'Message could not be sent.';
 echo 'Mailer Error: ' . $mail->ErrorInfo;
}
else
{
 echo 'Message has been sent';
}

Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.

10 komentar

mas kalau saya ngirim pesannya ke setiap email yang tersimpan di database gmana ya mas??? hehehe. mohon bantuannya ya mas.

tinggal di looping aja nama emailnya mas, nanti php akan mengirim email otomatis sesuai banyak nya email yang ada di database.

gan, kok masuk ke span terus?
Kecuali email dari server domain-nya.
Help me please...:(

kalau mau pakai send mail bawaan php gan,
php.net/manual/en/function.mail.php

coba pake sampel MIME-Version,,,
CTRL + F
paste "MIME-Version"

mas, saya sudah mengkuti cara di atas. dan webnya juga sudah sya hosting.
tp errornya muncul begini mas
Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

mohon bantuannya mas

smtp-nya pakai bawaan hosting atau punya google ?

pakek hosting mas, pengaturan smtp dan port sudah disesuaikan. tp masih errornya sama. Mohon bantuannya mas

mas, sy sudah berhasil untuk mengirim email. tapi bebeberapa hari kemudian email email itu tidak terkirim lagi padahal sy tidak mengubah scriptnya, kira2 kenapa ya mas ? mohon bantuannya mas

server email nya pake gmail apa hosting sendiri ?


EmoticonEmoticon