Dalam CodeIgniter disediakan library yang mungkin akan sangat berguna dalam pembuatan web yang memerlukan interaksi dengan user seperti pendaftaran, pengiriman notifikasi ke user, dsb, yaitu library class Email.php
Tentu saja sebelum mulai, harus diinisialisasi dulu dengan
$this->load->library('email');
Sebelum bisa digunakan, kita harus menseting email preference yang akan dipakai. Sedikitnya ada 17 preference berbeda yang ada buat kamu yang bisa menentukan bagaimana email kamu dikirim. Kamu bisa menset preference itu secara manual dengan variable config atau juga secara otomatis dengan menyimpan settingnya di sebuah file.
Untuk mensetting secara manual, semua setting yang kamu perlukan kamu simpan di dalam satu variabel array $config dan kamu panggil dengan perintah initialize dari objek email. Seperti contoh di bawah ini :
$config['protocol'] = 'sendmail'; $config['mailpath'] = '/usr/sbin/sendmail'; $config['charset'] = 'iso-8859-1'; $config['wordwrap'] = TRUE; $this->email->initialize($config);
Namun jika ada nilai preference yang tidak kamu set, maka dia akan menggunakan nilai defaultnya.
Jika kamu lebih suka menaruh konfigurasi dalam satu tempat dan hanya tinggal dipanggil saat diperlukan, maka kamu bisa menyimpannya dalam file config. Hanya dengan buat file dengan nama email.php lalu isi dengan konfigurasi yang ada isi tadi. Kemudian simpan file itu di path application/config/email.php. Jika disimpan di file, maka konfigurasi akan dipanggil secara otomatis dan TIDAK perlu memakai fungsi
$this->email->initilize();
Sekarang langsung ke contoh fungsi. Berikut ini saya coba tulis semua metode pengiriman email dari library email.php
Pertama, dengan SMTP
function send_smtp()
{
$this->load->library('email');
$config['protocol'] = 'mail';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'qorianku@gmail.com';
$config['smtp_pass'] = '1234567890';
$config['priority'] = 1;
$config['mailtype'] = 'text';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('qorianku@gmail.com', 'Deka dari gmail');
$this->email->to('qorianku@yahoo.com.sg');
//$this->email->cc('deka@somemail.com');
//$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test subject');
$this->email->message('Testing the email class CodeIgniter');
$this->email->send();
echo $this->email->print_debugger();
}
Kedua, dengan MAIL
function sendmail()
{
$this->load->library('email');
echo "testing sending email with mail method".
$config['protocol'] = 'mail';
$config['mailtype'] = 'text';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('qorianku@gmail.com', 'Deka dari gmail');
$this->email->to('qorianku@yahoo.com.sg');
//$this->email->cc('xcho85@gmail.com');
//$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test subject');
$this->email->message('Testing the email class CodeIgniter dengan mail');
$this->email->send();
echo $this->email->print_debugger();
}
Ketiga, dengan SENDMAIL
function sendsendmail()
{
$this->load->library('email');
echo "testing sending email with sendmail method".
$config['protocol'] = 'sendmail';
$config['mailtype'] = 'text';
$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('qorianku@gmail.com', 'Deka dari gmail');
$this->email->to('qorianku@yahoo.com.sg');
//$this->email->cc('xcho85@gmail.com');
//$this->email->bcc('them@their-example.com');
$this->email->subject('Email Test subject');
$this->email->message('Testing the email class CodeIgniter dengan sendmail');
$this->email->send();
echo $this->email->print_debugger();
}
Ketiganya sudah saya coba dan berhasil, namun pada metode smtp aku alami rada susah, cuma berhasil pada kali pertama coba saja. selanjutnya gagal dengan error broken pipe.

Bagus ato Jelek:
0
0
mas, bedanya SMTP. MAIL, dan SEND MAIL pa tow? ak mau minta saran , seumpama aplikasi tak jalankan lewat localhost. ak pake fungsi SMTP/MAIL/SENDMAIL?
Dan, seumpama aplikasi sya tdi tak upload ke hostingan, ak pake yg mn mas? Perlu konfigurasi mna saja?
Mohon pencerahannya………….
Bagus ato Jelek:
0
0
haloo saya ingin nanya ni saya pake ci juga cuma koq status messagenya kesent ke email yg dituju tapi bingungnya emailnya tidak sampai2, mohon pencerahannya.
Bagus ato Jelek:
0
0
mas yohanes make metode yang mana? sendmail? mail? ato dengan smtp?
kalo misalnya udah ke sent tapi belum sampe bisa juga karena hosting anda di blok oleh yahoo, atau juga dianggap spam.
coba dikirimkan ke email lain, misal gmail, atau email kantor.
silahkan mencoba
Bagus ato Jelek:
0
0
mas….
mo nanya…. masih ga mudeng neh….
jadi fuction2 mail, sedmail, smtp itu di buat di libraries-nya php gt?
tq yah
Bagus ato Jelek:
0
0
function2 diatas itu adalah contoh function yang siap pakai di class controller kamu.. jadi tinggal pake aja..
soalnya di libraries CI sudah disiapkan 3 protocol itu. tinggal di pilih mana yang akan dipake, sesuai kondisi server hosting anda.
contohnya, jika server hosting anda adalah windows server, maka kamu gak bisa make protocol sendmail,
karena perintah sendmail adanya cuma di linux system.
semoga membantu
Bagus ato Jelek:
0
0
ooooo gitu……..
mas……..
tq yahhhhhhhh
udah bisa……
tapi ada sedikit yang menggantung
akuw pake server kantor bisa……
tapi kalo buat gmail jadi pengirimnnya ga bisa….
akuw udah ubah:
1. SMTPSecure = “ssl”;
2. ['smtp_port'] = 465;
3. extension=php_openssl.dll dihilangin tanda ; nya
juga udah……kurang apa yah?
tulisannya:
Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:func(119):reason(252) in C:\wamp\www\Project1\class.smtp.php on line 122
Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in C:\wamp\www\Project1\class.smtp.php on line 122
Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:25 (Unknown error) in C:\wamp\www\Project1\class.smtp.php on line 122
Message was not sent
Mailer Error: Language string failed to load: connect_host
mohon pencerahannya mas….
Bagus ato Jelek:
0
0
hallo sori lama ga bisa bales mbak rani
(
kebanyakan kerjaan kantor.. gak abis2
ini aja baru bisa ngecek
kalo ta liat2 mbak nya pake phpmailer ya.. bukan CI.
kalo gitu coba langkah2 ini :
1 Download dan extract PHPMailer
2 buat file email.php
3 kopi paste kode dibawah ini:
< ?
include("class.phpmailer.php");
$mail=new PHPMailer();
$mail->IsSMTP(); // ngeset SMTP$mail->SMTPAuth = true; // mengaktifkan SMTP authentication
$mail->Username = “username@gmail.com”; // SMTP username
$mail->Password = “password”; // SMTP password
$webmaster_email = “username@doamin.com”; //Reply to this email ID
$email=”username@domain.com”; // Recipients email ID
$name=”name”; // Recipient’s name
$mail->From = $webmaster_email;
$mail->FromName = “Webmaster”;
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,”Webmaster”);
$mail->WordWrap = 50; // set word wrap
$mail->AddAttachment(“/var/tmp/file.tar.gz”); // attachment
$mail->AddAttachment(“/tmp/image.jpg”, “new.jpg”); // attachment
$mail->IsHTML(true); // send as HTML
$mail->Subject = “This is the subject”;
$mail->Body = “Hi,
This is the HTML BODY “; //HTML Body
$mail->AltBody = “This is the body when user views in plain text format”; //Text Body
if(!$mail->Send())
{
echo “Mailer Error: ” . $mail->ErrorInfo;
}
else
{
echo “Message has been sent”;
}
?>
4 buka file class.smtp.php di folder phpmailer
5 kopi paste kode ini
$host = “ssl://smtp.gmail.com”;
$port = 465;
sebelum baris 104 #connect to the smtp server
6 coba buka browser dan jalankan..
semoga membantu.
Bagus ato Jelek:
0
0
mas saya coba pakai sendmain di xampp
tapi tetap ngak bisa saya nyoba di local tapi terhebung ke internet….
mohon bantuannya
ini pesan eroor nya
testing sending email with sendmail methodsendmailExit status code: 1
Unable to open a socket to Sendmail. Please check settings.
Unable to send email using PHP Sendmail. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Fri, 14 Aug 2009 04:12:00 +0800
From: “Deka dari gmail”
Return-Path:
To: rhozhie@gmail.com
Subject: =?utf-8?Q?Email_Test_subject?=
Reply-To: “qorianku@gmail.com”
X-Sender: qorianku@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID:
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Testing the email class CodeIgniter dengan sendmail
Bagus ato Jelek:
0
0
mas ojie, xampp nya di linux apa di windows.
kalo windows jelas gak bisa
karena itu programmnya linux
kalo mau nyoba di xampp windows, coba pake method 1 (smtp) atau ke 2(mail -> harus download library mail kalo belum punya)
good luck
Bagus ato Jelek:
0
0
o iya maap mas saya ngak baca…he he he
trus download library mailnya dimana dan kalo sudah di tarok dimana mas….
maap mas masih nubitol he eh he eh
sebelumnya terima kasih mas.
Bagus ato Jelek:
0
0
saya pake xampp di windows mas
Bagus ato Jelek:
0
0
sori aku salah tulis kemaren,
sebenernya fungsi mail, sudah ada di dalam php, jadi
sudah ada di dalam CI.. tinggal pake aja
jadi penjelasannya fungsi kirim email di CI gini
1. dengan SMTP. CI sudah membundel perintah2 koneksi socket, untuk bisa komunikasi langsung dengan smtp server yang dituju.
2. dengan MAIL. CI memakai perintah mail dari PHP yang sudah built-in.
3. dengan SENDMAIL, CI langsung memakai program sendmail, biasanya program ini adanya di OS Linux, tapi diwindows juga ada. saya dapet info, kalo sendmail ini sudah ada yang versi windows. sendmail ini satu paket dengan xampp (sori kurang teliti). jadi kalo mau pake sendmail di server windows, bisa2 aja, asal path ke program sendmail nya benar.
wassalam
Bagus ato Jelek:
0
0
Saya coba persis yang tertera diatas dengan config saya dan hasilnya muncul error seperti ini.
A PHP Error was encountered
Severity: Warning
Message: mail() [function.mail]: SMTP server response: 553 We do not relay non-local mail, sorry.
Filename: libraries/Email.php
Line Number: 1519
Unable to send email using PHP mail(). Your server might not be configured to send mail using this method.
begini setting saya :
function send_smtp()
{
$config['protocol'] = ‘mail’;
$config['smtp_host'] = ‘smtp.gmail.com’;
$config['smtp_port'] = 465;
$config['smtp_user'] = ‘andilubab@gmail.com’;
$config['smtp_pass'] = ’123456′;
$config['priority'] = 1;
$config['mailtype'] = ‘text’;
$config['charset'] = ‘utf-8′;
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from(‘andilubab@gmail.com’, ‘Dari gmail’);
$this->email->to(‘im@andieko.web.id’);
$this->email->subject(‘Terimakasih’);
$this->email->message(‘Kami akan segera memproses dan melakukan verifikasi. Untuk selanjutnya tunggulah email dari kami. Terimakasih’);
$this->email->send();
echo $this->email->print_debugger();
}
Apa yang harus saya setting ya ?
Saya menggunakan XAMPP dan Windows.
Setting php. ini yang sudah saya buka :
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
extension=php_smtp.dll
extension=php_openssl.dll
Masih ada yang kurang apa ya ?
Mohon pencerahannya karena sudah mentok .. gak jalan semua.
Thxs
Bagus ato Jelek:
0
0
sori abis ada maintenance .
jadi responnya agak lama.
kalo dilihat kasusnya,
mungkin bisa diganti SMTP nya di php.ini ke SMTP server yang dipake. kalo SMTP server nya pake localhost, maka mas nya juga harus nginstall mail server komplit dengan SMTP nya
Bagus ato Jelek:
0
0
Asslm, terima kasih dan sangat membantu sekali.
Salut aku dengan mas deka ini,
Yang aku ingin tanyakan adalah, bisakan sebuah email dapat langsung meng-Attach file tanpa harus meng-attach secara manual, //??
Terima Kasih Banyak Mas Deka, Maju Terus Programmer Indonesia.
Bagus ato Jelek:
0
0
attachment bisa langsung kok ..
di library CI nya dah nyedian fungsinya
$this->email->attach(‘/path/to/doc1.doc’);
$this->email->send();
terima kasih
Bagus ato Jelek:
0
0
mas, mau tnya. kalo misal pke php mailer diterapin di CI gmn? caranya ?