การย้ายข้อมูลจาก Email Settings API

เอกสารนี้อธิบายความแตกต่างที่สำคัญระหว่าง Email Settings API กับ Gmail API คุณใช้คู่มือนี้เพื่อช่วยย้ายข้อมูลแอปไปยัง Gmail API ได้

การอนุญาตคำขอ

Gmail API ใช้โปรโตคอล OAuth 2.0 เพื่อให้สิทธิ์คําขอเช่นเดียวกับ Email Settings API ความแตกต่างที่สำคัญอย่างหนึ่งคือสิทธิ์ Gmail API จะกำหนดขอบเขตให้กับผู้ใช้แต่ละราย ไม่ใช่ทั้งโดเมน ซึ่งหมายความว่าการให้สิทธิ์บัญชีผู้ดูแลระบบโดเมนจะไม่อนุญาตให้คุณย้ายข้อมูลอีเมลของผู้ใช้รายอื่นในโดเมน แต่ต้องใช้บัญชีบริการมาตรฐานที่มีสิทธิ์ทั่วทั้งโดเมนซึ่งอยู่ในรายการที่อนุญาตในคอนโซลผู้ดูแลระบบเพื่อสร้างโทเค็นการตรวจสอบสิทธิ์ที่เหมาะสม

Email Settings API ใช้ขอบเขตต่อไปนี้

https://apps-apis.google.com/a/feeds/emailsettings/2.0/

ขอบเขตที่เทียบเท่าใน Gmail API มีดังนี้

https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing

การเปลี่ยนแปลงโปรโตคอล

Email Settings API ใช้โปรโตคอล GDATA ที่ใช้ XML Gmail API ใช้ JSON เนื่องจากการตั้งค่าส่วนใหญ่ประกอบด้วยคู่คีย์/ค่า พัลส์จึงมีความคล้ายคลึงกันในแง่แนวคิดระหว่างเวอร์ชันต่างๆ

ตัวอย่างการสร้างป้ายกำกับ

Email Settings API

POST https://apps-apis.google.com/a/feeds/emailsettings/2.0/{domain name}/{username}/label
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <apps:property name="label" value="status updates" />
</atom:entry>

Gmail API

POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
   "name": "status updates"
}

ใช้ไลบรารีไคลเอ็นต์ที่ให้มาแทนการใช้โปรโตคอลโดยตรง

การจัดการป้ายกำกับ

หากต้องการจัดการป้ายกำกับใน Gmail API ให้ใช้แหล่งข้อมูลป้ายกำกับ

การตั้งค่าเดิม การตั้งค่าใหม่ หมายเหตุ
labelId id
ป้ายกำกับ ชื่อ
unreadCount messagesUnread
การเปิดเผย labelListVisibility SHOW เปลี่ยนชื่อเป็น labelShow
HIDE เปลี่ยนชื่อเป็น labelHide

การเปลี่ยนแปลงอื่นๆ

  • เมื่ออัปเดตหรือลบป้ายกำกับ Gmail API จะอ้างอิงป้ายกำกับตามรหัสแทนที่จะอ้างอิงตามชื่อ

การจัดการตัวกรอง

หากต้องการจัดการตัวกรองใน Gmail API ให้ใช้แหล่งข้อมูลตัวกรอง

การตั้งค่าเดิม การตั้งค่าใหม่ หมายเหตุ
จาก criteria.from
ถึง criteria.to
วัตถุ criteria.subject
hasTheWord criteria.query
doesNotHaveTheWord criteria.negatedQuery
hasAttachment criteria.hasAttachment
shouldArchive action.removeLabelIds ใช้ INBOX เป็นรหัสป้ายกำกับ
shouldMarkAsRead action.removeLabelIds ใช้ UNREAD เป็นรหัสป้ายกำกับ
shouldStar action.addLabelIds ใช้ STARRED เป็นรหัสป้ายกำกับ
ป้ายกำกับ action.addLabelIds ใช้รหัสของป้ายกำกับเพื่อเพิ่ม
forwardTo action.forward
shouldTrash action.addLabelIds ใช้ TRASH เป็นรหัสป้ายกำกับ
neverSpam action.removeLabelIds ใช้ SPAM เป็นรหัสป้ายกำกับ

การเปลี่ยนแปลงอื่นๆ

  • หากยังไม่มีป้ายกํากับผู้ใช้ คุณต้องสร้างป้ายกำกับอย่างชัดเจนโดยใช้เมธอด labels.create

การจัดการอีเมลแทนสำหรับการส่งในชื่อ

หากต้องการจัดการอีเมลที่ใช้ส่งแทนใน Gmail API ให้ใช้แหล่งข้อมูล SendAs

การตั้งค่าเดิม การตั้งค่าใหม่
ชื่อ displayName
ที่อยู่ sendAsEmail
replyTo replyToAddress
makeDefault isDefault

การจัดการเว็บคลิป

การตั้งค่าเว็บคลิปจะใช้ผ่าน API ไม่ได้อีกต่อไป

การจัดการการตั้งค่าการส่งต่ออัตโนมัติ

หากต้องการจัดการการส่งต่ออัตโนมัติใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่ หมายเหตุ
เปิดใช้ เปิดใช้อยู่
forwardTo emailAddress
การดำเนินการ การจัดการ KEEP เปลี่ยนชื่อเป็น leaveInInbox
ARCHIVE เปลี่ยนชื่อเป็น archive
DELETE เปลี่ยนชื่อเป็น trash
MARK_READ เปลี่ยนชื่อเป็น markRead

การเปลี่ยนแปลงอื่นๆ

  • คุณต้องสร้างและยืนยันอีเมลสำหรับส่งต่อก่อนจึงจะใช้ได้
  • คุณจัดการอีเมลที่ใช้รับการส่งต่อได้ผ่านแหล่งข้อมูล ForwardingAddresses

การจัดการการตั้งค่า POP

หากต้องการจัดการสิทธิ์เข้าถึง POP ใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่ หมายเหตุ
เปิดใช้ accessWindow ปิดใช้เมื่อตั้งค่าเป็น disabled
enableFor accessWindow ALL_MAIL เปลี่ยนชื่อเป็น allMail
MAIL_FROM_NOW_ON เปลี่ยนชื่อเป็น fromNowOn
การดำเนินการ การจัดการ KEEP เปลี่ยนชื่อเป็น leaveInInbox
ARCHIVE เปลี่ยนชื่อเป็น archive
DELETE เปลี่ยนชื่อเป็น trash
MARK_READ เปลี่ยนชื่อเป็น markRead

การจัดการการตั้งค่า IMAP

หากต้องการจัดการสิทธิ์เข้าถึง IMAP ใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
เปิดใช้ เปิดใช้อยู่

การจัดการการตั้งค่าการตอบกลับอัตโนมัติในช่วงวันหยุด

หากต้องการจัดการการตอบกลับอัตโนมัติเมื่อลาพักร้อนใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
contactsOnly restrictToContacts
domainOnly restrictToDomain
เปิดใช้ enableAutoReply
endDate endTime
ข้อความ responseBodyHtml
responseBodyPlainText
startDate startTime
วัตถุ responseSubject

การจัดการการตั้งค่าลายเซ็น

หากต้องการจัดการลายเซ็นอีเมลใน Gmail API ให้ใช้แหล่งข้อมูล SendAs

การตั้งค่าเดิม การตั้งค่าใหม่
ลายเซ็น ลายเซ็น

การเปลี่ยนแปลงอื่นๆ

  • ตอนนี้ระบบจะจัดการลายเซ็นตามอีเมลแทน

การจัดการการตั้งค่าภาษา

หากต้องการจัดการการตั้งค่าภาษาใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
ภาษา displayLanguage

โปรดดูข้อมูลเพิ่มเติมในคู่มือการจัดการการตั้งค่าภาษา

การจัดการการตั้งค่าการมอบสิทธิ์

หากต้องการจัดการการมอบสิทธิ์ใน Gmail API ให้ใช้แหล่งข้อมูลผู้รับมอบสิทธิ์

การตั้งค่าเดิม การตั้งค่าใหม่
ที่อยู่ delegateEmail
สถานะ verificationStatus

การเปลี่ยนแปลงอื่นๆ

  • ทั่วไป
    • หากต้องการใช้วิธีการมอบสิทธิ์ใดๆ (รวมถึง delegates.create) ผู้ใช้ที่มอบสิทธิ์ต้องเปิดใช้ Gmail ซึ่งหมายความว่าผู้ใช้ที่มอบสิทธิ์จะไม่สามารถถูกระงับในGoogle Workspaceได้
    • คุณไม่สามารถใช้อีเมลแทนเป็นอินพุตอีเมลของผู้รับมอบสิทธิ์สำหรับวิธีการใหม่ได้ ผู้ใช้ที่รับมอบสิทธิ์ต้องระบุด้วยอีเมลหลัก
  • delegates.create
    • ตอนนี้คุณใช้วิธีนี้เพื่อสร้างความสัมพันธ์ของผู้รับมอบสิทธิ์ในโดเมนหลายรายการที่เป็นของ Google Workspaceองค์กรเดียวกันได้แล้ว
    • ตอนนี้วิธีการนี้ใช้ได้กับผู้ใช้ที่ต้องเปลี่ยนรหัสผ่านเมื่อลงชื่อเข้าใช้ครั้งถัดไป
    • หากทําสําเร็จ เมธอดนี้จะแสดงทรัพยากร Users.settings.delegates ในเนื้อหาการตอบกลับแทนที่จะเป็นเนื้อหาการตอบกลับที่ว่างเปล่า
    • หากผู้มอบสิทธิ์หรือผู้ใช้ที่รับมอบสิทธิ์ถูกปิดใช้ (เช่น ถูกระงับใน Google Workspace) วิธีการนี้จะดำเนินการไม่สำเร็จพร้อมแสดงข้อผิดพลาด HTTP 4XX แทนข้อผิดพลาด HTTP 500
  • delegates.delete
    • ตอนนี้วิธีการนี้สามารถใช้ลบผู้รับมอบสิทธิ์ที่มีverificationStatus ใดก็ได้แล้ว ไม่ใช่แค่ผู้รับมอบสิทธิ์ที่มีสถานะเป็น accepted หรือ expired
  • delegates.get
    • วิธีนี้เป็นวิธีใหม่ซึ่งอาจดีกว่าวิธี delegates.list ขึ้นอยู่กับความต้องการ

การจัดการการตั้งค่าทั่วไป

การตั้งค่าทั่วไปจะใช้ผ่าน API ไม่ได้อีกต่อไป