Autodiscover: แก้ Outlook ตั้งค่าอีเมลอัตโนมัติไม่สำเร็จ

แก้ Autodiscover เมื่อ Outlook ตั้งบัญชีไม่สำเร็จหรือไปเซิร์ฟเวอร์ผิด ตรวจ CNAME ของ Microsoft 365 ทดสอบด้วย Remote Connectivity Analyzer ล้าง SCP เก่า

โดย ทีมงาน THAI DATA CLOUD อ่าน 14 นาที

แชร์FacebookXLINELinkedIn
Autodiscover — Autodiscover: แก้ Outlook ตั้งค่าอีเมลอัตโนมัติไม่สำเร็จ
Autodiscover: แก้ Outlook ตั้งค่าอีเมลอัตโนมัติไม่สำเร็จ

คำตอบสั้น ๆ: แก้ Autodiscover เมื่อ Outlook ตั้งบัญชีไม่สำเร็จหรือไปเซิร์ฟเวอร์ผิด ตรวจ CNAME ของ Microsoft 365 ทดสอบด้วย Remote Connectivity Analyzer ล้าง SCP เก่า

คู่มือนี้อธิบาย Autodiscover ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

Autodiscover คือบริการที่ Outlook ใช้ค้นหาการตั้งค่าของกล่องจดหมาย Exchange โดยอัตโนมัติ ผู้ใช้กรอกแค่อีเมลกับรหัสผ่าน แล้ว Outlook จะไปถาม Autodiscover ว่ากล่องจดหมายอยู่บนเซิร์ฟเวอร์ไหน ใช้ URL อะไรสำหรับอีเมล ปฏิทิน Offline Address Book และ Out of Office ถ้า Autodiscover ตอบผิดหรือไม่ตอบ อาการที่เห็นคือตั้งบัญชีไม่สำเร็จ Outlook ถามรหัสผ่านวนซ้ำ ต่อไปยังเซิร์ฟเวอร์เก่าหลังย้ายระบบ หรือ Out of Office ตั้งไม่ได้

คู่มือนี้เขียนสำหรับผู้ดูแลระบบที่ดูแลโดเมนและอีเมลขององค์กร โดยเฉพาะองค์กรที่เพิ่งย้ายมา Microsoft 365 ยังมี Exchange เก่าในองค์กร หรือใช้โดเมนเดียวกันกับหลายระบบ เมื่อทำครบ คุณจะเข้าใจลำดับที่ classic Outlook ใช้ค้นหา Autodiscover ตรวจระเบียน DNS ได้ ทดสอบด้วยเครื่องมือของ Microsoft แก้กรณีเว็บไซต์หลักหรือ Exchange เก่าตอบแทน และใช้ค่า registry ควบคุมการค้นหาอย่างปลอดภัย

สิ่งที่ต้องเตรียม

  • สิทธิ์แก้ระเบียน DNS ของโดเมน ที่ผู้ให้บริการ DNS หรือ Cloudflare
  • รู้ว่ากล่องจดหมายของผู้ใช้อยู่ที่ไหน: Microsoft 365, Exchange Server ในองค์กร หรือระบบอีเมลอื่นแบบ IMAP
  • บัญชีทดสอบที่ไม่ใช่บัญชีผู้ดูแล สำหรับใช้กับเครื่องมือทดสอบออนไลน์
  • สิทธิ์ผู้ดูแลเครื่อง หรือสิทธิ์แก้ Group Policy ถ้าต้องใช้ค่า registry กับหลายเครื่อง
  • ถ้ายังมี Exchange Server ในองค์กร ต้องมีสิทธิ์ใช้ Exchange Management Shell

ถ้ายังไม่คุ้นกับชนิดของระเบียน DNS อ่านทำความรู้จัก DNS Record ก่อน จะเข้าใจขั้นตอนต่อไปได้ง่ายขึ้น

ลำดับการค้นหา Autodiscover ของ classic Outlook จากค่าที่จำไว้ Office 365 SCP root domain ซับโดเมน autodiscover จนถึง SRV
ทางไหนตอบก่อนชนะ จุดที่ตอบผิดก่อนถึง DNS ที่ถูกจึงพา Outlook ไปผิดเซิร์ฟเวอร์

ขั้นตอนที่ 1: ตรวจระเบียน DNS ของ Autodiscover

สำหรับกล่องจดหมายบน Microsoft 365 ระเบียนที่ต้องมีคือ CNAME ชื่อ autodiscover ชี้ไป autodiscover.outlook.com ตรวจในศูนย์ผู้ดูแลได้ที่ Microsoft 365 admin center > Settings > Domains > เลือกโดเมน > แท็บ DNS records ระเบียนที่ผิดจะแสดงสถานะเป็นข้อผิดพลาด ตรวจจากเครื่องได้ด้วยคำสั่ง

Resolve-DnsName autodiscover.example.com -Type CNAME
Resolve-DnsName _autodiscover._tcp.example.com -Type SRV

ผลแรกต้องแสดง NameHost เป็น autodiscover.outlook.com ผลที่สองสำหรับ Microsoft 365 ไม่จำเป็นต้องมี ถ้ามี SRV เก่าที่ชี้ไปเซิร์ฟเวอร์ที่เลิกใช้แล้ว ให้ลบออก ถ้าใช้ Cloudflare ควรตั้งระเบียน autodiscover เป็น DNS only ไม่ผ่าน Proxy เพื่อให้ Outlook ได้ปลายทางของ Microsoft ตรง ๆ วิธีตั้งระเบียนทั้งหมดของ Microsoft 365 อยู่ในคู่มือตั้งระเบียน DNS สำหรับ Microsoft 365

ผลคำสั่ง Resolve-DnsName ตรวจ CNAME ของ Autodiscover ที่ชี้ไป autodiscover.outlook.com และ reg query ดูค่าที่ใช้ข้ามขั้น root domain
CNAME ต้องชี้ไป autodiscover.outlook.com ส่วนค่า registry ควรมีเฉพาะที่ตั้งใจใส่เท่านั้น

ขั้นตอนที่ 2: ทดสอบ Autodiscover ด้วยเครื่องมือของ Microsoft

Microsoft Remote Connectivity Analyzer

เปิด https://testconnectivity.microsoft.com เลือกแท็บ Microsoft 365 แล้วเลือกการทดสอบ Outlook Autodiscover กรอกอีเมลและรหัสผ่านของบัญชีทดสอบ ผลจะแสดงทีละขั้นว่าลองติดต่อ URL ไหน ได้ผลอย่างไร และขั้นไหนล้มเหลว ใช้บัญชีทดสอบเสมอ เพราะเครื่องมือนี้ต้องส่งรหัสผ่านไปทดสอบจากเซิร์ฟเวอร์ของ Microsoft และเปลี่ยนรหัสบัญชีทดสอบหลังใช้เสร็จ

Test E-mail AutoConfiguration ใน classic Outlook

  1. กด Ctrl ค้างแล้วคลิกขวาที่ไอคอน Outlook ในพื้นที่แจ้งเตือน เลือก Test E-mail AutoConfiguration
  2. ตรวจอีเมลในช่อง E-mail Address ใส่รหัสผ่านถ้าถาม
  3. เอาเครื่องหมายออกจาก Use Guessmart และ Secure Guessmart Authentication คงไว้เฉพาะ Use AutoDiscover แล้วคลิก Test
  4. ดูแท็บ Log ว่า Outlook ลอง URL ไหนบ้างและสำเร็จที่ URL ใด แท็บ Results แสดงเซิร์ฟเวอร์ที่ได้รับ

เครื่องมือนี้มีเฉพาะ classic Outlook for Windows ข้อดีคือทดสอบจากเครื่องจริงของผู้ใช้ จึงเห็นผลของ SCP, proxy และค่า registry บนเครื่องนั้น ซึ่งเครื่องมือออนไลน์มองไม่เห็น

ขั้นตอนที่ 3: แก้กรณีเว็บไซต์หลักตอบ Autodiscover แทน

ตามเอกสารของ Microsoft ลำดับการค้นหาของ classic Outlook จะลอง https://example.com/autodiscover/autodiscover.xml (root domain) ก่อนซับโดเมน autodiscover.example.com และในขั้น root domain นี้ Outlook จะไม่เตือนเรื่องใบรับรอง SSL ที่ไม่ตรง ถ้าเว็บไซต์ของบริษัทอยู่บนโฮสติ้งที่ตอบ path นี้ เช่น โฮสติ้งที่มีบริการอีเมลในตัวและสร้างหน้า Autodiscover ให้อัตโนมัติ Outlook อาจได้ค่าของโฮสติ้งแทน แล้วถามรหัสผ่านวนซ้ำหรือไปตั้งบัญชีผิดระบบ

บัญชีที่ Outlook เดาได้ว่าเป็น Microsoft 365 มักไม่เจอปัญหานี้ เพราะขั้น Office 365 มาก่อน root domain แต่บัญชีบน Exchange ในองค์กรหรือระบบอื่นเจอได้บ่อย ทดสอบด้วยการเปิด URL ข้างต้นในเบราว์เซอร์ ถ้าได้หน้าถามรหัสผ่านหรือหน้า XML จากโฮสติ้ง แก้ได้สองทาง:

  • ปิดบริการอีเมลหรือ Autodiscover ของโฮสติ้งเว็บไซต์ถ้าไม่ได้ใช้อีเมลของโฮสติ้งแล้ว
  • ตั้งค่า ExcludeHttpsRootDomain = 1 บนเครื่องผู้ใช้ เพื่อข้ามขั้นนี้ (ดูขั้นตอนที่ 5)

ขั้นตอนที่ 4: ล้าง SCP ของ Exchange เก่าใน Active Directory

เครื่องที่ join โดเมน Active Directory จะถาม Service Connection Point (SCP) ใน AD ก่อน root domain และก่อน DNS ถ้าองค์กรเคยมี Exchange Server แล้วย้ายทุกกล่องจดหมายไป Microsoft 365 แต่ยังไม่ได้ปิด Exchange ให้ถูกวิธี Outlook จะยังไปถามเซิร์ฟเวอร์เก่า อาการคือถามรหัสผ่านพร้อมชื่อเซิร์ฟเวอร์ภายใน หรือแจ้งใบรับรองหมดอายุของเซิร์ฟเวอร์เก่า

ถ้าย้ายครบทุกกล่องแล้วและไม่มีแผนใช้ Hybrid ต่อ ให้ล้างค่า SCP ของ Exchange 2016 หรือ 2019 ทุกเครื่องใน Exchange Management Shell (Exchange 2010 ใช้ Set-ClientAccessServer)

Get-ClientAccessService | Format-Table Name, AutoDiscoverServiceInternalUri
Set-ClientAccessService -Identity EX01 -AutoDiscoverServiceInternalUri $null

คำเตือน: ถ้ายังมีกล่องจดหมายบน Exchange ในองค์กรหรือยังใช้ Hybrid อยู่ ห้ามล้าง SCP เพราะผู้ใช้ในองค์กรจะหาเซิร์ฟเวอร์ไม่เจอทั้งหมด จดค่าเดิมจากคำสั่งแรกไว้ก่อนแก้ทุกครั้ง ถ้าไม่แน่ใจ ให้ข้ามขั้น SCP เฉพาะเครื่องที่มีปัญหาด้วยค่า ExcludeScpLookup = 1 แทน

ขั้นตอนที่ 5: ใช้ค่า registry ควบคุมการค้นหา Autodiscover

classic Outlook อ่านค่า DWORD จาก HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover และคีย์นโยบาย HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\AutoDiscover โดยคีย์นโยบายมีผลเหนือกว่า ค่า 1 หมายถึงข้ามขั้นนั้น ค่าที่ใช้บ่อย:

  • ExcludeHttpsRootDomain: ข้ามขั้น root domain ใช้เมื่อเว็บไซต์ตอบ Autodiscover แทน
  • ExcludeScpLookup: ข้ามการถาม SCP ใน Active Directory
  • ExcludeExplicitO365Endpoint: ไม่ให้ Outlook ไปถาม Microsoft 365 ก่อน ใช้กับผู้ใช้ที่กล่องจดหมายไม่ได้อยู่บน Microsoft 365 แต่โดเมนอยู่ใน tenant
  • ExcludeLastKnownGoodURL: ไม่ใช้ค่าที่เคยสำเร็จซึ่งจำไว้ในโปรไฟล์ ใช้ชั่วคราวหลังย้ายระบบ

สำรองคีย์ก่อนแก้ทุกครั้ง แล้วแก้ทีละค่าและทดสอบซ้ำด้วย Test E-mail AutoConfiguration

reg export "HKCU\Software\Microsoft\Office\16.0\Outlook\AutoDiscover" "%USERPROFILE%\Desktop\autodiscover-backup.reg"
reg add "HKCU\Software\Microsoft\Office\16.0\Outlook\AutoDiscover" /v ExcludeHttpsRootDomain /t REG_DWORD /d 1 /f
reg query "HKCU\Software\Microsoft\Office\16.0\Outlook\AutoDiscover"

ถ้าคีย์ยังไม่มี คำสั่ง reg export จะแจ้งว่าหาไม่พบ ข้ามไปขั้น reg add ได้ Microsoft เตือนว่าค่าในคีย์นี้ที่ตั้งผิดทำให้ Outlook หา Autodiscover ไม่เจอเลย ถ้าเจอค่าที่ไม่รู้ที่มา ให้ลองเปลี่ยนเป็น 0 แล้วทดสอบใหม่ ค่า registry ชุดนี้มีผลกับ classic Outlook for Windows เท่านั้น ลำดับและชื่อค่าทั้งหมดอยู่ในบทความ Outlook 2016 implementation of Autodiscover

ขั้นตอนที่ 6: จัดการโดเมนที่ใช้สองระบบพร้อมกัน

บางองค์กรแบ่งผู้ใช้โดเมนเดียวกันไว้สองระบบ เช่น ผู้บริหารใช้ Microsoft 365 ส่วนพนักงานส่วนใหญ่ใช้ Cloud Mail Server แบบ IMAP ระเบียน CNAME ของ Autodiscover ชี้ได้ที่เดียว จึงต้องตัดสินใจว่าจะให้ระบบไหนเป็นหลัก

  • ชี้ Autodiscover ไปที่ระบบที่ใช้ Exchange (Microsoft 365) เพราะ Outlook พึ่ง Autodiscover สำหรับบัญชีแบบ Exchange มากที่สุด
  • ผู้ใช้ฝั่ง IMAP ให้ตั้งบัญชีแบบระบุเซิร์ฟเวอร์เอง (Advanced options > Let me set up my account manually แล้วเลือก IMAP)
  • ถ้าเครื่องของผู้ใช้ฝั่ง IMAP ถูก Outlook พาไป Microsoft 365 เอง ให้ตั้ง ExcludeExplicitO365Endpoint = 1 บนเครื่องนั้น

การแบ่งผู้ใช้สองระบบต้องวางเส้นทางอีเมลขาเข้าให้ถูกด้วย ดูคู่มือ Split Delivery ก่อนเริ่ม

ตารางระเบียน Autodiscover ที่ต้องใช้เมื่อกล่องจดหมายอยู่บน Microsoft 365 Exchange ในองค์กร Hybrid หรือระบบ IMAP อื่น
ระเบียนเดียวชี้ได้ที่เดียว เลือกปลายทางตามที่อยู่ของกล่องจดหมายส่วนใหญ่และแบบ Exchange

ปัญหาที่พบบ่อยเกี่ยวกับ Autodiscover

เปลี่ยน CNAME ของ Autodiscover แล้ว แต่ Outlook ยังไปเซิร์ฟเวอร์เดิม ทำไม?

มีสองสาเหตุ อย่างแรกคือ DNS ยังจำค่าเก่าตาม TTL ให้รอและล้างแคชด้วย ipconfig /flushdns อย่างที่สองคือโปรไฟล์ Outlook จำ URL ที่เคยสำเร็จไว้ (Last Known Good) ให้สร้างโปรไฟล์ใหม่ หรือตั้ง ExcludeLastKnownGoodURL = 1 ชั่วคราวแล้วเอาออกเมื่อใช้งานได้

Outlook เด้งถามว่า Allow this website to configure server settings ควรกด Allow ไหม?

หน้าต่างนี้ขึ้นเมื่อ Autodiscover ถูก redirect ไปอีก URL หนึ่ง ให้อ่าน URL ในหน้าต่างก่อน ถ้าเป็นโดเมนของ Microsoft เช่น autodiscover-s.outlook.com หรือเซิร์ฟเวอร์ขององค์กรที่รู้จัก กด Allow ได้ ถ้าเป็นโดเมนแปลกหรือโฮสติ้งเว็บไซต์ ให้กด Deny แล้วแก้ตามขั้นตอนที่ 3

ใช้ Microsoft 365 ต้องสร้างระเบียน SRV ของ Autodiscover ไหม?

ไม่ต้อง Microsoft 365 ใช้ CNAME autodiscover ชี้ไป autodiscover.outlook.com SRV เป็นทางสำรองท้ายสุดของการค้นหา ถ้ามี SRV เก่าที่ชี้ผิดที่ควรลบ เพราะอาจพา Outlook ไปผิดเซิร์ฟเวอร์เมื่อขั้นก่อนหน้าล้มเหลว

Autodiscover ใช้กับบัญชี IMAP ไหม?

Autodiscover ออกแบบมาสำหรับ Exchange เป็นหลัก ผู้ให้บริการ IMAP บางรายเผยแพร่ข้อมูล Autodiscover เพื่อให้ Outlook กรอกเซิร์ฟเวอร์ IMAP และ SMTP เอง แต่ถ้าไม่มี Outlook จะเดาหรือให้กรอกเอง สิ่งที่สำคัญกว่าสำหรับ IMAP คือชื่อเซิร์ฟเวอร์ พอร์ต และการเข้ารหัสที่ถูกต้อง ถ้าตั้งถูกแล้วยังถามรหัสวนซ้ำ ดูคู่มือแก้ Outlook ถามรหัสผ่านซ้ำ

ถ้าองค์กรกำลังย้ายระบบอีเมล ปิด Exchange เก่า หรือใช้โดเมนเดียวกับสองระบบแล้ว Outlook ตั้งค่าไม่สำเร็จ ติดต่อทีมงาน THAI DATA CLOUD ได้ทันที และดูรายละเอียดบริการ Cloud Migration สำหรับการย้ายระบบอีเมลแบบวางแผนตั้งแต่ DNS จนถึงเครื่องผู้ใช้

อ่านเพิ่มเติมเกี่ยวกับ Autodiscover

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน