Categories: PHP

Cara mengakses gmail dengan php imap

Bismillaahirrohmaanirrohiim…

Saat ini teknologi sudah berkembang cepat, ada kalanya kita ingin diberikan informasi secara cepat jika ada email masuk dengan judul atau isi tertentu.

Nah, disini saya hanya ingin berbagi tutorial tentang bagaimana mengakses inbox email di gmail menggunakan PHP.

Setelah bisa diambil menggunakan PHP, nantinya email tersebut dapat diolah sesuai kebutuhan.

Langsung saja ikuti langkah-langkah dibawah ini:

  • Login di gmail
  • Buka pengaturan, klik icon gear diatas, klik button “Lihat semua setelan”
  • Buka tab “Penerusan dan POP/IMAP”
  • Aktifkan IMAP
  • Simpan Perubahan

Buat sandi/pin aplikasi di gmail, dengan cara:

  • Klik icon profil di atas
  • Klik “kelola akun google anda”
  • Pilih Menu “Keamanan”
  • Klik “Verifikasi 2 langkah”
  • Scroll ke bawah, temukan bagian “Sandi Aplikasi”
  • Buat sandi aplikasi, copy sandi tersebut ketempat yang aman.

Buat kode PHP dengan menggunakan fungsi IMAP untuk mengakses akun gmailnya:

<?php
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$username = 'yourakun[at]xxxxxx.com';
$password = 'yoursandiaplikasi';//sandi aplikasi bukan paswd email ya

//koneksi ke gmail dengan imap
$inbox = imap_open($hostname,$username,$password)  or die('Cannot connect to Gmail: ' . imap_last_error());


if (!$inbox ) {
 exit('Ada kesalahan');
}

// $emails = imap_search($inbox,'ALL');//semua email
$emails = imap_search($inbox,'UNSEEN');//hanya yang belum dibaca

if ($emails) {
    //urutkan yang terbaru ada diatas
 rsort($emails);

 $no = 0;
 foreach($emails as $email_number) {
        //mengambil info header email (from, to, subject, date, dll)
  $overview = imap_fetch_overview($inbox,$email_number,0);

        //mengambil isi email
        //saat perintah ini dipanggil, maka otomatis email yang ada digmail statusnya akan menjadi "terbaca"
  $message = imap_fetchbody($inbox,$email_number,1);

        //ubah object menjadi array
  $overview_arr = json_decode(json_encode ( $overview ) , true);

        //ekstract isi dari array diatas
  $subject = isset($overview_arr[0]['subject']) ? $overview_arr[0]['subject'] : '';
  $udate = isset($overview_arr[0]['udate']) ? $overview_arr[0]['udate'] : '';
        //dst
 }

}

//tutup imap
imap_close($inbox);

Untuk menjalankan imap, jangan lupa diaktifkan modul php_imap di dalam file php.ini nya.

Selesai, semoga bermanfaat

Bagikan
rasupe

Recent Posts

Fix npx atau npm tidak jalan di windows

Bismillaahirrohmaanirrohiim... Setelah menginstall node.js dan ingin menggunakan perintah npx atau npm di power shell atau…

5 days ago

CPU usage tinggi pada server

Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…

2 months ago

Membersihkan log mongodb yang besar

Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…

2 months ago

Cara mengakses gps di HP dengan javascript

Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…

5 months ago

Menghitung jarak dua titik koordinat dengan php dan javascript

Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…

5 months ago

Kemasan cleo botol kecil sering bikin tangan terluka

Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…

6 months ago