Thursday, November 20, 2014
Mengirim Email via Localhost di Codeigniter
Assalamu'alaykum~ kembali lagi dengan tutorial codeigniter bersama saya! Semoga ini bisa bermanfaat. Aamiin.
Kali ini mau share gimana caranya ngirim email via form di codeigniter mode localhost. Karena masih belum dicoba via hosting, mungkin errornya akan beda sama yang hostingan :) Oiya tutorial ini konsepnya buat ngirim email semacam feedback atau komentar. Jadi email tujuannya udah pasti.
Senjata yang saya pakai:
1. XAMPP Apache 2.0
2. PHP ver 5.3.5
3. Codeigniter 2.2.0
4. Sublime Text Editor
5. Gmail Account
6. Windows 7
Filenya bisa download di: http://yukiyagami.16mb.com/kom.zip
Oke.. langsung aja... pertama pastiin web servermu udah jalan dan oke. Terus copy codeigniter di directory rootmu. Tempat saya nama folder.nya 'kom'. Silakan nanti disesuaikan.
Karena enggak pake database jadi enggak perlu konfigurasi database dan model. Kita bisa langsung buat controller, nama filenya pengatur.php. Prinsipnya dia cuma manggil viewnya doank. Tapi jangan lupa panggil helper url ya..
Lalu buat view, namanya index.php. Dia prinsipnya membuat form yang nanti akan diisi. Ini format form-nya:
Pastikan helper url udah diload supaya bisa pakai php site_url(). Lalu perhatikan actionnya. Isi form itu akan dikirim ke http://localhost/kom/index.php/email. Jadi kita harus buat controller lagi yang namanya email.php. Di sini konfigurasi emailnya ditulis.
Selanjutnya coba jalankan. Buka http://localhost/kom/index.php/pengatur, lalu isikan data dan klik kirim.
Akan muncul error berbunyi: unable to connect to ssl://smtp.googlemail.com:465 (Unable to find the
socket transport "ssl" - did you forget to enable it when you configured
PHP?)
Untuk mengatasi itu, pertama matikan apache. Dimatikan aja hlo, bukan diuninstall.
Cara mematikan service apache salah satunya lewat control panel. Buka Control Panel--> Administrative Tools--> Services. Cari Apache kemudian pilih stop.
Setelah service apache berhenti, copy file libeay32.dll dan ssleay32.dll yang ada di folder \xampp\php\, kemudian paste di folder \xampp\apache\bin\. Pilih replace file. Lalu buka file php.ini yang ada di folder \xampp\php\. Jika tidak ada mungkin file php.ini mu ada di C:\Windows. Coba cari ya..
Dalam file php.ini, ubah ;extension=php_openssl.dll menjadi extension=php_openssl.dll (dihilangkan tanda titik komanya). Jika enggak ada tinggal tambahkan extension=php_openssl.dll pada baris berakhir file php.ini. Jangan lupa disave!
Hidupkan lagi service apache.
Sekarang reload http://localhost/kom/index.php/pengatur. Akan muncul error lagi: Failed to authenticate password.....
Yup kalau udah error yang itu berarti tinggal 1 step lagi ^_^! Login ke akun gmail.mu yang tadi ditulis di file email.php baris ke 17. Lalu klik link ini: https://www.google.com/settings/security/lesssecureapps dan pilih Enable.
Reload http://localhost/kom/index.php/pengatur lagi. InsyaAllah udah fix!
Coba cek emailmu. Di inbox akan ada email baru 'atas nama' emailmu sendiri! Nah di sini yang sebenarnya masih aneh, kita akan menerima email dari email yang kita tulis di email.php baris 17, bukan dari email yang ditulis di form. Alamat email yang tertulis di form akan muncul di bagian dalam email ketika dibuka. jadi hati-hati waktu coba membalas ya...
Begitulah! Alhamdulillah selesai :) Ini sedikit tutorial. Kalau kamu ada kritik, saran, dan lain-lain boleh langsung dilayangkan ke komentar atau email saya: yukiyagami222@gmail.com.
Thanks to:
http://www.technicalkeeda.com/details/how-to-send-email-using-php-codeigniter, http://forum.gozenhost.com/blogs/gozen-3/how-enable-ssl-socket-using-xampp-3/
Subscribe to:
Post Comments
(
Atom
)
Wa'alaikm salam..., AlhamdulIllah... tutorial yg sangat bermanfaat buat saya trimakasih banyak gan. ^.^
ReplyDeleteAlhamdulillah ^-^ kembali kasih~
Deleteterima kasih mas tutorialnya bermanfaat banget, untuk menerima email dari form yang ditulis uda ada belum tutorialnya?
ReplyDeleteMaaf baru bales.. menerima email dr form yg ditulis maksudny gmn ya..?
DeleteTerima kasih tutorialnya gan. ngomomb-ngomong link downloadnya mati
ReplyDeleteIyaa itu dari web hostinganku yg mati.. maaf
DeleteTerima kasih gan
ReplyDeleteMantap, Alhamdulillah suwun mastah
ReplyDelete$this->email->from('Email_line_17@gmail.com'); //sesuai dgn line 17
ReplyDelete$this->email->to($email); // sesuai dengan inputan form atau email yang dituju
saya rubah sedikit biar lebih greget hehehe btw thx tutorialnya sangat bermanfaat
gan gmna kalau misalnya kita upload pake hosting gratis make idhostinger ? masih jalan ga di server untuk kirim email otomatis/subscrib menggunakan cronjob ?
ReplyDeleteGan mau tanya,, klo buat form seperti itu untuk 2 fungsi jadi 1 bisa gak ya, kayak klik send pada form tapi fungsinya nyimpen data tersebut ke database seklian kirim ke email yang dituju gitu gan..??
ReplyDeleteMohon penjelasannya
gan, kok tidak ada pesan yang masuk yah..?
ReplyDeletepadahal scriptnya udah masuk..
A PHP Error was encountered
ReplyDeleteSeverity: Warning
Message: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No such host is known.
Filename: libraries/Email.php
Line Number: 1990
Backtrace:
File: D:\xampp\htdocs\sia\application\controllers\Email.php
Line: 57
Function: send
File: D:\xampp\htdocs\sia\index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (php_network_getaddresses: getaddrinfo failed: No such host is known. )
Filename: libraries/Email.php
Line Number: 1990
Backtrace:
File: D:\xampp\htdocs\sia\application\controllers\Email.php
Line: 57
Function: send
File: D:\xampp\htdocs\sia\index.php
Line: 315
Function: require_once
Fatal error: Uncaught Error: Call to undefined function mysql_insert_id() in C:\xampp\htdocs\CI\application\models\m_register.php:15 Stack trace: #0 C:\xampp\htdocs\CI\application\controllers\register.php(30): M_register->add_account(Array) #1 C:\xampp\htdocs\CI\system\core\CodeIgniter.php(359): Register->submit() #2 C:\xampp\htdocs\CI\index.php(202): require_once('C:\\xampp\\htdocs...') #3 {main} thrown in C:\xampp\htdocs\CI\application\models\m_register.php on line 15
ReplyDeletemohon petunjuk...
mohon pencerahaan nya mas kalo di windows 10 fungsi mail yg ada di xampp nya ga terdefinisi dilihat cuman bisa untuk windows 7 saja ?
DeleteMaksudnya tidak terdefinisi itu bagaimana ya?
Deletemohon pencerahaan nya mas kalo di windows 10 fungsi mail yg ada di xampp nya ga terdefinisi dilihat cuman bisa untuk windows 7 saja ?
ReplyDeleteHarus php 5 ya?
ReplyDeletekalo 7 bisa?