Kirim email google menggunakan codeigniter dan SMTP
Kirim email google menggunakan codeigniter
Dengan adanya mail helper pada CI (CodeIgniter) kita bisa mengirim email lebih mudah. Pada dasarnya jika server sudah dilengkapi dengan mail service kita ga perlu lagi melakukan banyak konfigurasi untuk kirim email google menggunakan codeigniter, cukup dengan mengikuti guide aja, tapi masalah bisa jadi parah jika kita ingin kirim email melalui SMTP misalnya ke google mail. Lalu solusinya gimana, mas broh? Yuk kita oprek dulu code standart menggunakan mail helper CI (CodeIgniter) untuk kirim email google menggunakan codeigniter.
$this->load->library('email'); $mail = $this->email; $mail->from('your@example.com', 'Your Name'); $mail->to('someone@example.com'); $mail->cc('another@another-example.com'); $mail->bcc('them@their-example.com'); $mail->subject('Mail Test'); $mail->message('Testing the mail class.'); $mail->send(); echo $mail->print_debugger();
Nah pada code diatas, secara otomatis codeigniter ataupun PHP native akan mengirim mail tersebut menggunakan smtp yang telah di set pada php.ini kemudian mengirimkannya menggunakan mail service yang ada di server kita. Sedangkan jika kita ingin kirim email google menggunakan codeigniter mail service dari tempat lain, kita bisa membuat dengan code seperti berikut ini.
$config = Array( 'protocol' => 'smtp', 'smtp_host' => 'mail.cobacoba.com', 'smtp_port' => 465, 'smtp_user' => 'usercoba', 'smtp_pass' => 'passcoba', 'mailtype' => 'html', 'charset' => 'iso-8859-1' ); $this->load->library('email', $config); $mail = $this->email; $mail->from('your@example.com', 'Your Name'); $mail->to('someone@example.com'); $mail->cc('another@another-example.com'); $mail->bcc('them@their-example.com'); $mail->subject('Mail Test'); $mail->message('Testing the mail class.'); $mail->send(); echo $mail->print_debugger();
Yang berbeda pada code kirim email google menggunakan codeigniter diatas dengan code sebelumnya adalah code diatas menggunakan $config yang berisi konfigurasi SMTP. Lalu jika kita ingin menggunakan SMTP dari google mail, ada beberapa yang harus diperhatikan yang pertama adalah SMTP mengguakan google mail harus menggunakan protocol ssl, kemudian harus mengubah newline dengan “\r\n”. Berikut ini penampakan code nya.
$config = Array( 'protocol' => 'smtp', 'smtp_host' => 'ssl://smtp.googlemail.com', 'smtp_port' => 465, 'smtp_user' => 'usercoba', 'smtp_pass' => 'passcoba', 'mailtype' => 'html', 'charset' => 'iso-8859-1' ); $this->load->library('email', $config); $this->email->set_newline("\r\n"); $mail = $this->email; $mail->from('your@example.com', 'Your Name'); $mail->to('someone@example.com'); $mail->cc('another@another-example.com'); $mail->bcc('them@their-example.com'); $mail->subject('Mail Test'); $mail->message('Testing the mail class.'); $mail->send(); echo $mail->print_debugger();
Lalu apa yang terjadi jika kita tidak menggunakan protocol ssl dan mengubah newline menjadi “\r\n”? Kira – kira seperti ini pesan error yang akan kita dapatkan.
A PHP Error was encountered Severity: Warning Message: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:func(119):reason(252) Filename: libraries/Email.php Line Number: 1641
Selesai sudah artikel Kirim mail melalui Google Mail menggunakan SMTP di CI (CodeIgniter). Jika ada pertanyaan atau masukan tentang cara kirim email google menggunakan codeigniter, silahkan comment yah, sekalian meramaikan artikel ini ^_^.
thanks,
nice!
but, saya masih belum paham mengenai penjelasan dari kode diatas ada 3 macam
configurasi
seletah saya coba ke sana kemari seting ini setting itu pada server tetap menemukan kesallahan
Boleh ane tau error / pesan kesalahannya seperti apa?
kayak ginin gan :
Berikut kesalahan SMTP ditemui: 110 Connection timed out
Tidak dapat mengirim email menggunakan PHP SMTP. Server Anda mungkin tidak dikonfigurasi untuk mengirim email menggunakan metode ini.
Ini di localhost atau di server online gan?
mas saya error waktu menjaankan source code nya :
220 mail.banksumut.com ESMTP Postfix
hello: 250-mail.banksumut.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
from: 250 2.1.0 Ok
to: 554 5.7.1 : Relay access denied
The following SMTP error was encountered: 554 5.7.1 : Relay access denied
data: 554 5.5.1 Error: no valid recipients
The following SMTP error was encountered: 554 5.5.1 Error: no valid recipients
221 2.7.0 Error: I can break rules, too. Goodbye.
The following SMTP error was encountered: 221 2.7.0 Error: I can break rules, too. Goodbye.
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Fri, 21 Jul 2017 07:59:34 +0700
From: “Your Name”
Return-Path:
To: tri82.wiyono@gmail.com
Subject: =?ISO-8859-1?Q?=4D=61=69=6C=20=54=65=73=74?=
Reply-To: “triwiyono@banksumut.com”
X-Sender: triwiyono@banksumut.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID:
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary=”B_ALT_597151f65989a”
This is a multi-part message in MIME format.
Your email application may not support this format.
–B_ALT_597151f65989a
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Testing the mail class.
–B_ALT_597151f65989a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Testing the mail class.
–B_ALT_597151f65989a–
Sepertinya ini ada permasalahan di servernya gan. Dan bisa juga karena di block dari server mail nya.
gan kalau error kaya gini ngatasinya dmn y gan :
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Agan membuat aplikasinya di mana? Di localhost atau di hosting?
gan kalau error kayak gini gimana
fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
fsockopen(): Failed to enable crypto
fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error)
Itu nyobanya dimana gan? Di localhost?
kalau dilocal berhasil, tapi klo udah dihosting gagal, apa ga berlaku kalau dihosting ya?
Coba pastikan bahwa pihak hosting ga mem-block port emailnya. Karena ada beberapa tempat hosting yang mem-block port.