สำหรับไคลเอ็นต์ที่ไม่ใช่ Gmail นั้น Gmail รองรับโปรโตคอล IMAP, POP และ SMTP มาตรฐาน เราได้ขยายเซิร์ฟเวอร์ IMAP, POP และ SMTP ของ Gmail เพื่อรองรับการให้สิทธิ์ผ่านโปรโตคอล OAuth 2.0 ซึ่งเป็นมาตรฐานอุตสาหกรรม
โปรโตคอล
IMAP, POP และ SMTP ใช้ Simple Authentication and Security Layer (SASL) มาตรฐานโดยใช้คําสั่ง IMAP AUTHENTICATE
, POP AUTH
และ SMTP AUTH
ในตัวเพื่อตรวจสอบสิทธิ์ผู้ใช้ กลไก SASL XOAUTH2 ช่วยให้ไคลเอ็นต์ระบุข้อมูลเข้าสู่ระบบ OAuth 2.0 เพื่อตรวจสอบสิทธิ์ได้ เอกสารประกอบเกี่ยวกับโปรโตคอล SASL XOAUTH2 อธิบายกลไก SASL XOAUTH2 อย่างละเอียด รวมถึงมีไลบรารีและตัวอย่างที่ใช้โปรโตคอลนี้
การเชื่อมต่อขาเข้าไปยังเซิร์ฟเวอร์ IMAP ที่ imap.gmail.com:993
และเซิร์ฟเวอร์ POP ที่ pop.gmail.com:995
ต้องใช้ SSL เซิร์ฟเวอร์ SMTP ขาออก smtp.gmail.com
รองรับ TLS หากไคลเอ็นต์เริ่มต้นด้วยข้อความธรรมดา ให้ใช้พอร์ต 465
(สำหรับ SSL) หรือพอร์ต 587
(สำหรับ TLS) ก่อนที่จะออกคำสั่ง STARTTLS
ขีดจำกัดระยะเวลาของเซสชัน
เซสชัน POP ของ Gmail จะจำกัดอยู่ที่ประมาณ 7 วัน เซสชัน IMAP ของ Gmail จะจำกัดไว้ที่ประมาณ 24 ชั่วโมง หากเซสชันได้รับการตรวจสอบสิทธิ์โดยใช้ข้อมูลเข้าสู่ระบบ OAuth เซสชันจะจำกัดอยู่ที่ระยะเวลาที่โทเค็นการเข้าถึงที่ใช้ใช้งานได้ (โดยปกติคือ 1 ชั่วโมง) เซสชันในบริบทนี้คือการเชื่อมต่อ TCP แบบต่อเนื่อง 1 รายการ
เมื่อพ้นเวลาและเซสชันหมดอายุ Gmail จะปิดการเชื่อมต่อพร้อมแสดงข้อความว่าเซสชันหมดอายุ หลังจากนั้น ลูกค้าจะเชื่อมต่ออีกครั้ง ตรวจสอบสิทธิ์อีกครั้ง และดำเนินการต่อได้ หากใช้ OAuth ให้ตรวจสอบว่าโทเค็นการเข้าถึงที่ใช้นั้นถูกต้อง (หากพยายามใช้โทเค็นการเข้าถึงที่มีอายุมากกว่า 1 ชั่วโมง โทเค็นอาจไม่ถูกต้อง)
ไลบรารีและตัวอย่าง
การเข้าถึงอีเมลโดยใช้ IMAP หรือ POP และการส่งอีเมลโดยใช้ SMTP มักทำโดยใช้ไลบรารี IMAP และ SMTP ที่มีอยู่เพื่อความสะดวก ตราบใดที่ไลบรารีเหล่านี้รองรับ Simple Authentication and Security Layer (SASL) ก็ควรจะเข้ากันได้กับกลไก SASL XOAUTH2 ที่ Gmail รองรับ
นอกจากเอกสารประกอบเกี่ยวกับโปรโตคอล SASL XOAUTH2 แล้ว คุณอาจต้องอ่านการใช้ OAuth 2.0 เพื่อเข้าถึง Google API เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานไคลเอ็นต์ OAuth 2.0
หน้าไลบรารีและตัวอย่างมีตัวอย่างโค้ดในภาษายอดนิยมต่างๆ โดยใช้กลไก SASL XOAUTH2 กับ IMAP หรือ SMTP