มีวิธีใดในการรับขนาดข้อความ Gmail ใน Google Apps Script หรือไม่

ขณะนี้ฉันมีสคริปต์ Python ที่ใช้ IMAP เพื่อรับขนาดของทุกข้อความในบัญชี Gmail ของฉัน และนำเสนอข้อมูลนั้นด้วยวิธีที่เป็นประโยชน์ต่างๆ เช่น แจกแจงตามผู้ส่ง ฉันต้องการเขียน Google Apps Script ที่ทำสิ่งเดียวกัน แต่ฉันมีปัญหาบางอย่าง

ฉันไม่พบวิธีง่ายๆ ในการรับขนาดของข้อความใน Gmail จากสคริปต์ ฉันเห็นว่าฉันสามารถโทร getRawContent() ได้ และฉันคิดว่าความยาวของสตริงนั้นบวกกับขนาดของไฟล์แนบของข้อความควรจะเป็นข้อมูลเพียงพอที่จะระบุขนาดของข้อความ อย่างไรก็ตาม getRawContent() สันนิษฐานว่าเป็นการอ่าน และจำกัดโควต้าการอ่าน 20,000 ครั้งต่อวัน ในอัตราดังกล่าว อาจใช้เวลาหลายวันกว่าจะค้นหาขนาดของข้อความทั้งหมดในกล่องจดหมายของฉัน! (เทคนิค IMAP ปัจจุบันของฉันใช้เวลาเพียงไม่กี่นาที)

มีวิธีใดบ้างที่จะรับขนาดของข้อความโดยไม่ต้องอ่านเนื้อหาทั้งหมดของข้อความและใช้โควต้าการอ่านจนหมด


person Josh    schedule 26.09.2016    source แหล่งที่มา


คำตอบ (2)


คุณอาจต้องการใช้ "บริการ Gmail ขั้นสูง "

บริการ Gmail ขั้นสูงช่วยให้คุณใช้ Gmail API ใน Apps Script ได้ เช่นเดียวกับบริการ Gmail ในตัวของ Apps Script API นี้ช่วยให้สคริปต์สามารถค้นหาและ แก้ไขเธรด ข้อความ และป้ายกำกับในกล่องจดหมาย Gmail ในกรณีส่วนใหญ่ บริการในตัวจะใช้งานง่ายกว่า แต่บริการขั้นสูงนี้มีคุณลักษณะพิเศษบางอย่างและการเข้าถึงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับเนื้อหา Gmail

ฉันไม่ได้ลองสิ่งนี้ แต่เอกสารบอกว่า:

สำหรับข้อมูลโดยละเอียดเกี่ยวกับบริการนี้ โปรดดูเอกสารอ้างอิงสำหรับ Gmail API เช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script บริการ Gmail ขั้นสูงจะใช้ออบเจ็กต์ วิธีการ และพารามิเตอร์เดียวกันกับ API สาธารณะ

การใช้สิ่งนี้จะทำให้สามารถรับ sizeEstimate ( สำหรับข้อความ) และขนาด (สำหรับไฟล์แนบ) .

หวังว่ามันจะช่วยได้!

person Mr.Rebot    schedule 27.09.2016

person    schedule
comment
คำตอบคือประมาณนี้ โดยมีข้อแม้ที่ sizeEstimate และ getSize ส่งคืนคำตอบเป็นไบต์ ดังนั้นคุณต้องหารด้วย 1,024^2 เพื่อให้ได้ MB ฉันไม่แน่ใจว่าทำไมคุณต้องพิจารณาขนาดไฟล์แนบแยกกัน เนื่องจากเอกสารบอกเป็นนัยอย่างยิ่งว่าขนาดข้อความรวมไฟล์แนบด้วย - person Josh; 18.03.2017
comment
นอกจากนี้ ยังมีความแตกต่างระหว่างเธรดและข้อความ - อาจเป็นไปได้ว่า ID เธรดนั้นเหมือนกับ ID ข้อความของข้อความแรก ซึ่งอธิบายว่าทำไมดูเหมือนว่าจะใช้งานได้ แต่จริงๆ แล้วไม่ได้พิจารณาขนาดของข้อความอื่นในเธรด (หรือไฟล์แนบในข้อความอื่น) - person Josh; 18.03.2017
comment
อย่างไรก็ตาม... API นี้มีการจำกัดอัตราด้วยเช่นกัน โดยจะใช้เวลา 30+ นาทีในการทำงานกับเมลทั้งหมด และจะต้องตรวจสอบข้อความแสดงข้อผิดพลาดเกินโควต้า (หรือเพียงจำกัดอัตราอย่างระมัดระวัง) เช่นเดียวกับการแบ่งงานออกเป็นหลายการทำงาน (เนื่องจากการเรียกใช้สคริปต์ Apps ถูกจำกัดไว้ที่ 4 นาที) การดำเนินการนี้ผ่าน IMAP ยังเร็วและง่ายกว่ามาก - person Josh; 18.03.2017