Skip to main content
mengirimkan email dengan codeigniter dan mailgun

Mengirimkan Email dengan Codeigniter dan Mailgun

Mengirimkan email dengan codeigniter dan mailgun tidak sulit, anda cukup mengatur konfigurasi email yang akan anda kirim melalui mailgun. Panduan dibawah ini akan membantu anda untuk mengatur aplikasi yang dapat anda pergunakan untuk mengirimkan email dengan codeigniter dan mailgun.

BACA:

mengirimkan email dengan codeigniter dan mailgun

Apa itu Mailgun?

Mailgun adalah sebuah layanan atau servis yang menyediakan layanan SMTP untuk mengirimkan email. Mengapa kita membutuhkan SMTP MAILGUN? Terkadang kita membutuhkan untuk mengirimkan ribuan email newsletter atau promo produk ke member kita yang jumlahnya bisa mencapai ribuan atau bahkan puluhan ribu, dan jika anda menggunakan SMTP milik hosting anda atau shared hosting anda sendiri, pada umumnya hal ini dilarang dan resiko anda di suspend. Problem lain nya adalah ip server anda beresiko di blacklist oleh google, yahoo , dll. Sehingga dapat berakibat email yang anda kirimkan akan langsung masuk ke folder spam, atau bahkan tidak dapat terkirim. Hal ini tentunya buruk untuk bisnis, apalagi email dapat digunakan sebagai fitur registrasi atau recovery password pada website anda yang digunakan oleh member anda.

Dengan menyerahkan pengiriman email ke pihak ketiga yakni Mailgun, anda tidak perlu khawatir akan resiko blacklist tadi, bahkan berdasarkan pengalaman saya, menggunakan Mailgun sangat besar peluangnya untuk masuk inbox dan bukan spam folder.

Panduan Mengirimkan Email dengan Codeigniter dan Mailgun

1. Silahkan anda mendaftar di Mailgun.com dan kemudian login ke dalam akun anda. Di halaman dashboard, scroll kebawah dan cari Sandbox domain. Sandbox domain ini adalah tempat anda menguji mailgun anda, karena untuk menjalankan fitur mailgun secara penuh, anda harus mendaftarkan domain anda dan mengatur beberapa konfigurasi DNS yang mengarah ke Mailgun. Dan oleh sebab itu agar anda dapat mengetest mengirimkan email dari localhost pc anda, dapat menggunakan sandbox domain ini.

mengirimkan email dengan codeigniter dan mailgun gb1

2. Setelah anda mengklik sandbox domain di langkah pertama tadi, maka anda akan diarahkan ke halaman berikutnya. Di halaman ini silahkan anda catat informasi detail SMTP yang nantinya anda gunakan untuk konfigurasi pengiriman email di codeigniter. Selanjutnya silahkan klik Manage Authorized Recipients.

mengirimkan email dengan codeigniter dan mailgun gb2

3. Di halaman ini silahkan daftarkan email penerima anda, yang ditujukan utk pengetesan pengiriman email. Pada mode sandbox, hanya dapat mengirimkan email ke alamat yang telah didaftarkan terlebih dahulu.

mengirimkan email dengan codeigniter dan mailgun gb3

4. Selanjutnya buat file email.php dan letakkan di folder application/config/. Copas kode dibawah ini:


<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.mailgun.org';
$config['smtp_port'] = 465;
$config['smtp_user'] = 'postmaster@sandboxb5c86d3498084b77b.mailgun.org';//ini username anda.
$config['smtp_pass'] = '625c0f13123e8d807';//ini password smtp anda.
$config['smtp_timeout'] = '4';
$config['crlf'] = '\n';
$config['newline'] = '\r\n';

5. Buat file MY_Email.php dan letakkan di folder application/libraries/ . Copas kode dibawah ini:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Email extends CI_Email {

public function __construct($config = array())
{
if (count($config) > 0)
{
$this->initialize($config);
}
else
{
$this->_smtp_auth = ($this->smtp_user == '' AND $this->smtp_pass == '') ? FALSE : TRUE;
$this->_safe_mode = ((boolean)@ini_get("safe_mode") === FALSE) ? FALSE : TRUE;
}

log_message('debug', "Email Class Initialized");
}

public function set_header($header, $value)
{
$this->_headers[$header] = $value;
}
}

6.Buat controller Kirim_email.php dan letakkan di application/controllers/ dan copas kode dibawah ini

<?php
class Kirim_email extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->helper('form');
}
public function index() {
$this->load->helper('form');
$this->load->view('v_email');
}
public function kirimkan() {
$from_email = "support@alexistdev.com";
$to_email = $this->input->post('email');
//Load email library
$this->load->library('email');
$this->email->from($from_email, 'Alexistdev.com');
$this->email->to($to_email);
$this->email->subject('Kirim Email Codeigniter');
$this->email->message('Anda menerima pesan ini karena sudah mengirimkan email dari codeigniter');
//Send mail
if($this->email->send())
$this->session->set_flashdata("email_sent","Email Berhasil Dikirimkan.");
else
$this->session->set_flashdata("email_sent","Error ditemukan, periksa kembali konfigurasi anda!");
$this->load->view('v_email');
}
}
?>

7. Buat file view v_email.php , letakkan di application/views dan copas kode dibawah ini:

<html>
<head> 
<title> Send Email Codeigniter </title>
</head>
<body>
<?php
echo $this->session->flashdata('email_sent');
echo form_open('/Kirim_email/kirimkan');
?>
<input type = "email" name = "email" required />
<input type = "submit" value = "KIRIM MAIL">
<?php
echo form_close();
?>
</body>
</html>

8. Untuk menjalankannya silahkan akses localhost/namafolderanda/kirim_email atau jika anda sudah mengatur virtual host di pc anda, dapat mengaksesnya dengan contoh:servis.local/kirim_email

mengirimkan email dengan codeigniter dan mailgun gb4

9. Masukkan alamat email dan kirimkan, kemudian cek ke dalam folder inbox email anda yang telah anda daftarkan tersebut.
mengirimkan email dengan codeigniter dan mailgun gb5

Catatan Penulis

Sebenarnya banyak pilihan layanan SMTP diluar sana, akan tetapi saya memilih mailgun karenakan gratis 10.000 per bulannya. Walaupun boleh dibilang, mailgun agak sulit dalam pengaturan tapi sepertinya saya lebih senang menggunakan Mailgun. Banyak pilihan layanan SMTP yang bisa anda gunakan selain Mailgun, yakni Sendinblue, Smtp2Go, mailchimp, dll. Silahkan anda pilih sendiri sesuai kebutuhannya, tapi pada dasarnya metode diatas sama, hanya tinggal ganti aja konfigurasi di bagian application/config/email.php nya

Jika anda membutuhkan bantuan dan pertanyaan, silahkan isi di kolom komentar. Saya senang jika bisa berdiskusi bersama.

Leave a Reply

Your email address will not be published. Required fields are marked *