Watashi wa mou hitori ja nai :)

Powered by Blogger.

Thursday, November 20, 2014

Mengirim Email via Localhost di Codeigniter

18 comments :

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/

18 comments :

  1. Wa'alaikm salam..., AlhamdulIllah... tutorial yg sangat bermanfaat buat saya trimakasih banyak gan. ^.^

    ReplyDelete
  2. terima kasih mas tutorialnya bermanfaat banget, untuk menerima email dari form yang ditulis uda ada belum tutorialnya?

    ReplyDelete
    Replies
    1. Maaf baru bales.. menerima email dr form yg ditulis maksudny gmn ya..?

      Delete
  3. Terima kasih tutorialnya gan. ngomomb-ngomong link downloadnya mati

    ReplyDelete
    Replies
    1. Iyaa itu dari web hostinganku yg mati.. maaf

      Delete
  4. Mantap, Alhamdulillah suwun mastah

    ReplyDelete
  5. $this->email->from('Email_line_17@gmail.com'); //sesuai dgn line 17
    $this->email->to($email); // sesuai dengan inputan form atau email yang dituju
    saya rubah sedikit biar lebih greget hehehe btw thx tutorialnya sangat bermanfaat

    ReplyDelete
  6. gan gmna kalau misalnya kita upload pake hosting gratis make idhostinger ? masih jalan ga di server untuk kirim email otomatis/subscrib menggunakan cronjob ?

    ReplyDelete
  7. Gan 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..??
    Mohon penjelasannya

    ReplyDelete
  8. gan, kok tidak ada pesan yang masuk yah..?
    padahal scriptnya udah masuk..

    ReplyDelete
  9. A PHP Error was encountered

    Severity: 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

    ReplyDelete
  10. 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

    mohon petunjuk...

    ReplyDelete
    Replies
    1. mohon pencerahaan nya mas kalo di windows 10 fungsi mail yg ada di xampp nya ga terdefinisi dilihat cuman bisa untuk windows 7 saja ?

      Delete
    2. Maksudnya tidak terdefinisi itu bagaimana ya?

      Delete
  11. mohon pencerahaan nya mas kalo di windows 10 fungsi mail yg ada di xampp nya ga terdefinisi dilihat cuman bisa untuk windows 7 saja ?

    ReplyDelete
  12. Harus php 5 ya?
    kalo 7 bisa?

    ReplyDelete