PHP Baca Gmail dan Simpan di MySQL (Bagian 2)

Melanjutkan post sebelumnya tentang baca gmail pake PHP, setelah berhasil mengambil email sekarang waktunya memparsing body email. Kita akan memanfaatkan fungsi imap fetchstructure untuk mengetahui apakah body email hanya terdiri dari teks saja atau multipart (berisi html). Untuk email yang hanya teks, sepertinya tidak terlalu rumit, cukup search saja kata yang dibutuhkan.

Jika body berisi html maka akan digunakan parser buatan kak Borisevich.

Pertama kita buat script untuk membaca email ini.

email-to-read
Kode read_gmail2.php.

Ups, error lagi. Ternyata butuh ekstensi dom/xml untuk menggunakan karya kakak dari Rusia itu. Pengguna Ubuntu cukup ketik perintah.

Akses lagi script read_gmail2.php.

show-recent-emailKita akan mengambil kata Ipsum pada ordered list. Baca-baca dokumentasi html parser untuk tujuan kita, dapat disederhanakan begini.

Contoh sederhana penggunaan html parser adalah.

Kembali ke script read_gmail2.php, dengan inspect element (F12) pada browser diketahui bahwa kata tersebut terdapat pada list ber-id yui_3_16_0_ym19_1_1481460480726_2769. Karena tiap li diberi id berbeda oleh yahoo (email itu dibuat melalui Yahoo) maka dapat digunakan pendekatan seperti contoh. Namun untuk email lain bisa jadi metode yang ditempuh harus berbeda. Jadi yang utama adalah inspect element dan fungsi yang tersedia dari html parsernya kakak Dmitry.

inspect-elementJadi untuk mendapatkan Ipsum, cukup mengganti read_gmail2.php di bagian ini.

Dan hasilnya.
parsing-resultOkesip, berhasil parsing html.

Post selanjutnya tinggal bagaimana menambahkan ke dalam MySQL.

Salam.

Lebih lanjut:

http://php.net/manual/en/function.imap-fetchbody.php

PHP Baca Gmail dan Simpan di MySQL (Bagian 1)

Belakangan saya senang mendaftar pekerjaan data entri pada situs lowongan kerja untuk freelance, berharap jenis pekerjaannya cukup sederhana untuk dapat diotomasi dengan script (Python, PHP, Bash) dan ngerjainnya ga butuh banyak waktu.

Salah satu pekerjaan yang menarik yang ditawarkan, ‘saya ingin mengambil bagian tertentu dari email dan menyimpan dalam database.’ At first saya ingin menggunakan Python untuk mengerjakannya, tapi lalu terpikir bagaimana kalau script itu harus dijalankan di shared hosting? Maka PHP lah pendekatan yang paling masuk akal. Karenanya saya coba dulu pake PHP.

Pertama saya perlu instal ekstensi IMAP pada PHP. Karena lingkungan pemrograman saya adalah PHP7 pada Nginx dalam Ubuntu maka  saya cukup mengetik pada terminal.

Untuk lingkungan pemrograman lain proses di atas dapat menyesuaikan, misal aktivasi imap di cpanel tentu berbeda.

Setelah instalasi, untuk memastikan ekstensi terload pada servis php maka.

Sebelum ngoding, kita lihat dulu inbox gmail yang akan kita akses.

Inbox

Inbox

Lalu ketik kode read_gmail.php.

Selengkapnya untuk fungsi dari php imap ada di sini.

Lalu (drum roll).

Ups! Error! (Ba dum tss).

error-authenticatePerbaiki dengan:

  1. Enable imap di Gmail Settings sesuai petunjuk mereka.
  2. Gunakan pilihan less secure di sini.
  3. Enable dengan link ini.

Dan alakazam!

read-gmailInbox gmail setelah semua dibaca.

gmail-inbox-seen

Kita berhasil baca email yang belum terbaca, tapi hasilnya masih amburadul karena semua isi dari body ditampilkan.

Lalu ternyata cukup panjang proses untuk membaca body email, karenanya tulisan ini akan dibagi menjadi 3.

Bagian 2 (Parsing Email Body)

Salam.

Lebih lanjut:

http://www.namasteui.com/read-gmail-emails-using-php-imap/

https://arjunphp.com/reading-emails-from-gmail-using-php-imap/

http://tecadmin.net/install-php-7-on-ubuntu/

http://stackoverflow.com/questions/24525284/access-emails-using-imap

https://support.google.com/mail/answer/7126229?hl=en

http://php.net/manual/en/book.imap.php