Menampilkan Daftar Folder Yang Tersedia di GMail Melalui IMAP

Pada tulisan terdahulu, kita sudah lihat bagaimana cara melakukan koneksi IMAP ke gmail menggunakan PHP. Kali ini kita akan melihat bagaimana cara menampilkan daftar folder / label yang ada di GMail.

Melakukan query

Dengan asumsi koneksi sudah tersedia di variable $mailbox, maka untuk menampilkan daftar folder, kita bisa menggunakan fungsi imap_list():

$folders = imap_list($mailbox, '{imap.gmail.com:993/imap/ssl}', '*' );

Parameter kedua sama dengan imap host yang digunakan untuk membuka koneksi. Sedangkan parameter ketiga adalah kriteria pencarian. Berikut, beberapa kriteria pencarian yang valid:

  • /[Gmail]/%: Menampilkan seluruh sub folder /[Gmail]/
  • %string%: Menampilkan HANYA folder utama yang cocok dengan kriteria string
  • *string*: Menampilkan SEMUA folder dan sub folder yang cocok dengan kriteria string

Beberapa catatan tambahan mengenai folder / label di GMail adalah, tidak semua label yang ada bisa di query. Hanya label-label yang boleh muncul yang bisa di query. Setting untuk ini terdapat di halaman “Settings » Labels“. Di sana akan ada satu opsi tambahan yang namanya “Show in IMAP” pada setiap label. Tapi, opsi ini baru akan muncul bisa kita menggunakan “Labs Feature” yang bernama “Advanced IMAP Controls“.

Menampilkan data

Untuk menampilkan data, anda hanya perlu melakukan looping foreach dari array hasil query:

if( is_array($folders) )
{
	foreach( $folders as $folder)
	{
		echo "$folder\r\n";
	}
}

Selesai sudah. Cukup simpel kan?

Berikut kode lengkapnya:


<?php

$email    = [email protected]';
$password = 'password anda';

$imap_host = "{imap.gmail.com:993/imap/ssl}";

$imap_folder = "INBOX"; //juga bisa disebut sebagai label

$mailbox = imap_open($imap_host . $imap_folder,$email,$password) or die('Gagal membuka koneksi ke GMail: ' . imap_last_error());

$folders = imap_list($mailbox, '{imap.gmail.com:993/imap/ssl}', '*a*' );

if( is_array($folders) )
{
	foreach( $folders as $folder)
	{
		echo "$folder\r\n";
	}
}

?>

Author: Arief Bayu Purwanto

Hello, my name is Arief Bayu Purwanto, a 24 years old father of a beautiful daughter. Interested in online programming, linux, games, and reading. Currently working on kapanlagi.com as junior developer. I live in a relatively quite and cool place called Malang. I'm available for some freelance stuff as well as some consulting job. You can see my portofolio for some previous task I've finished and some other information related to my capability. Btw, I'm plurking here.