กับ Microsoft ปิดใช้งานการรับรองความถูกต้องพื้นฐานใน Exchange Onlineฉันตั้งใจจะเพิ่มการรองรับ Modern Authentication ในแอปพลิเคชันของเรา แอพของเราส่งการแจ้งเตือนทางอีเมลพื้นฐาน ขณะนี้เราใช้ SMTP Basic auth หรือ open relay สำหรับสิ่งนี้ แต่ Modern Auth จะเป็นส่วนเสริมที่ดี
เพื่อให้เข้าใจกระบวนการทั้งหมด ฉันต้องการดำเนินการตามกระบวนการอีเมลทั้งหมดด้วยตนเอง ฉันมีผู้เช่าการพัฒนาที่ Microsoft ซึ่งฉันได้ลงทะเบียนแอปพลิเคชันของเรา ฉันไม่มีปัญหาในการรับโทเค็น Oauth ด้วยขอบเขตอีเมล เป็นการสื่อสารกับเซิร์ฟเวอร์ SMTP ที่ฉันไม่สามารถผ่านได้
เนื่องจากการสื่อสารต้องมีการเข้ารหัส ฉันจึงใช้ opensl (แทน telnet) ฉันเชื่อมต่อกับเซิร์ฟเวอร์ด้วยคำสั่งนี้:
openssl s_client -เชื่อมต่อ smtp.office365.com:587 -crlf -starttls smtp
มีข้อเสนอแนะบางประการเกี่ยวกับการเจรจา SSL จากนั้นเซิร์ฟเวอร์ตอบกลับด้วย:
250 SMTPUTF8
เมื่อถึงจุดนั้น ฉันเชื่อว่าฉันควรใช้คำสั่ง EHLO อย่างไรก็ตามหลังจาก
EHLO
การตอบสนองเป็นเพียง (เซิร์ฟเวอร์เปลี่ยนแปลงทุกครั้งที่พยายาม)
' [AM4PR0101CA0056.eurprd01.prod.exchangelabs.com]
ณ จุดนี้ฉันไม่แน่ใจว่าจะทำอย่างไร ฉันเชื่อว่าอาจจำเป็นต้องแทรกบางโดเมนหลังคำสั่ง ehlo (เพื่อระบุผู้เช่าออนไลน์ของ Microsoft ที่จะเชื่อมต่อด้วย) อย่างไรก็ตาม ไม่ว่าฉันจะใส่โดเมนใดก็ตาม คำตอบจะเป็นเสมอ:
501 5.5.4 ชื่อโดเมนไม่ถูกต้อง [AM4PR0101CA0056.eurprd01.prod.exchangelabs.com]
ใครช่วยอธิบายวิธีเริ่มต้นการสื่อสารกับผู้เช่า Microsoft Exchange Online ผ่าน OpenSSL ได้ไหม ฉันจะใส่อะไรหลังจาก EHLO? ฉันเชื่อมต่อกับที่อยู่ที่ถูกต้องหรือไม่ ฉันแค่พยายามไปถึงจุดที่สามารถออกคำสั่ง AUTH XOAUTH2 เพื่อเข้าสู่ระบบผู้เช่าของฉันได้
ฉันสามารถทำตามขั้นตอนทั้งหมดโดยใช้เซิร์ฟเวอร์ smtp ของ Gmail (smtp.gmail.com) ที่นั่น ไม่สำคัญว่าคุณจะเพิ่มอะไรหลังจากคำสั่ง ehlo หลังจากออกคำสั่งแล้ว คุณจะได้รับการต้อนรับและสามารถเข้าสู่ระบบด้วยคำสั่ง AUTH ต่างๆ ได้