Apakah ada cara untuk mendapatkan ukuran pesan Gmail di Google Apps Script?

Saat ini saya memiliki skrip python yang menggunakan IMAP untuk mengetahui ukuran setiap pesan di akun Gmail saya dan menyajikan info tersebut dalam berbagai cara yang berguna, seperti dikelompokkan berdasarkan pengirim. Saya ingin menulis Skrip Google Apps yang melakukan hal yang sama, namun saya mengalami beberapa masalah.

Saya tidak dapat menemukan cara mudah untuk mendapatkan ukuran pesan di Gmail dari skrip. Saya melihat bahwa saya dapat memanggil getRawContent(), dan saya berasumsi bahwa panjang string tersebut ditambah ukuran lampiran pesan harus menjadi informasi yang cukup untuk mengetahui ukuran pesan. Namun, getRawContent() mungkin dihitung sebagai pembacaan, dan terdapat batas kuota 20.000 pembacaan per hari. Kalau begitu, butuh beberapa hari untuk mengetahui ukuran semua pesan di kotak masuk saya! (Teknik IMAP saya saat ini hanya membutuhkan waktu beberapa menit.)

Apakah ada cara untuk mendapatkan ukuran pesan tanpa membaca seluruh isi pesan dan menghabiskan kuota baca?


person Josh    schedule 26.09.2016    source sumber


Jawaban (2)


Anda mungkin ingin menggunakan "Layanan Gmail Tingkat Lanjut "

Layanan Gmail Tingkat Lanjut memungkinkan Anda menggunakan Gmail API di Apps Script. Mirip dengan layanan Gmail bawaan Apps Script, API ini memungkinkan skrip menemukan dan ubah utas, pesan, dan label di kotak surat Gmail. Dalam kebanyakan kasus, layanan bawaan lebih mudah digunakan, namun layanan lanjutan ini menyediakan beberapa fitur tambahan dan akses ke informasi lebih detail tentang konten Gmail.

Saya belum mencobanya tetapi dokumentasinya mengatakan:

Untuk informasi mendetail tentang layanan ini, lihat dokumentasi referensi untuk Gmail API. Seperti semua layanan lanjutan di Apps Script, layanan Gmail tingkat lanjut menggunakan objek, metode, dan parameter yang sama dengan API publik.

Menggunakan ini akan memungkinkan untuk mendapatkan sizeEstimate ( untuk pesan) dan ukuran (untuk lampiran) .

Semoga bisa membantu!

person Mr.Rebot    schedule 27.09.2016

person    schedule
comment
Jawabannya kira-kira seperti ini, dengan peringatan bahwa sizeEstimate dan getSize mengembalikan jawabannya dalam byte, jadi Anda harus membaginya dengan 1024^2 untuk mendapatkan MB. Saya tidak yakin mengapa Anda harus mempertimbangkan ukuran lampiran secara terpisah, karena dokumen tersebut secara tegas menyiratkan bahwa ukuran pesan menyertakan lampiran. - person Josh; 18.03.2017
comment
Selain itu, terdapat perbedaan antara rangkaian pesan dan pesan - mungkin ID rangkaian pesan sama dengan ID pesan dari pesan pertama, yang menjelaskan mengapa hal ini tampaknya berhasil, namun sebenarnya tidak mempertimbangkan ukuran pesan lain di rangkaian pesan. (atau lampiran pada pesan lain). - person Josh; 18.03.2017
comment
Pokoknya... API ini juga dibatasi tarifnya - ini memerlukan waktu 30+ menit untuk dijalankan di semua email, dan memerlukan pengecekan pesan kesalahan melebihi kuota (atau sekadar membatasi tarif secara konservatif), serta membagi tugas menjadi beberapa proses (karena eksekusi Apps Script dibatasi hingga 4 menit). Masih jauh lebih cepat dan mudah untuk melakukan ini melalui IMAP. - person Josh; 18.03.2017