คำตอบสั้น ๆ: เปิด DKIM ให้โดเมนบน Google Workspace ตั้งแต่สร้างคีย์ใน Admin console เพิ่มระเบียน TXT google._domainkey กด Start authentication และตรวจผลจนขึ้น pass
คู่มือนี้อธิบาย DKIM ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
DKIM (DomainKeys Identified Mail) คือการแนบลายเซ็นดิจิทัลไปกับอีเมลทุกฉบับที่ส่งออกจากโดเมนของคุณ เซิร์ฟเวอร์ปลายทางจะดึงกุญแจสาธารณะที่คุณประกาศไว้ใน DNS มาตรวจว่าอีเมลมาจากระบบที่ได้รับอนุญาตจริงและเนื้อหาไม่ถูกแก้ระหว่างทาง ถ้ายังไม่ได้ตั้งค่า Gmail จะลงนามด้วยโดเมนของ Google เอง (ลงท้ายด้วย gappssmtp.com) ซึ่งไม่ตรงกับโดเมนผู้ส่ง จึงช่วยให้ผ่าน DMARC ไม่ได้
คู่มือนี้สำหรับผู้ดูแลระบบขององค์กรที่ใช้ Google Workspace เป็นอีเมลหลัก ปัจจุบัน Gmail กำหนดให้ทุกรายที่ส่งอีเมลถึงบัญชี Gmail ต้องมี SPF หรือลายเซ็นโดเมนอย่างน้อยหนึ่งอย่าง และผู้ที่ส่งถึงบัญชี Gmail เกิน 5,000 ฉบับต่อวันต้องมีครบทั้ง SPF, DKIM และ DMARC เมื่อทำครบทุกขั้นตอน อีเมลขององค์กรจะถูกลงนามด้วยโดเมนของคุณเองและผ่านการตรวจที่ปลายทาง
สิ่งที่ต้องเตรียม
- บัญชี Super Admin ของ Google Workspace เพราะการสร้างคีย์ในหน้า Authenticate email ต้องใช้สิทธิ์ระดับนี้
- สิทธิ์แก้ไข DNS ของโดเมน ไม่ว่าจะอยู่ที่ผู้รับจดโดเมน Cloudflare หรือ Plesk
- เปิดใช้ Gmail ให้โดเมนมาแล้วอย่างน้อย 24–72 ชั่วโมง ถ้าเพิ่งเปิด ระบบอาจยังสร้างคีย์ให้ไม่ได้
- รายการระเบียน TXT ที่มีอยู่ เพื่อดูว่ามีระบบอื่นใช้ selector ชื่อ
googleอยู่แล้วหรือไม่ - เครื่องที่มีคำสั่ง
digหรือnslookupสำหรับตรวจ DNS
ถ้าองค์กรมีหลายโดเมน เช่น Secondary domain หรือ alias domain ที่ใช้ส่งอีเมลด้วย ต้องสร้างคีย์แยกให้ทุกโดเมน คีย์ของโดเมนหลักใช้แทนกันไม่ได้
ขั้นตอนที่ 1: เปิดหน้า Authenticate email ใน Admin console
เข้าสู่ระบบ admin.google.com ด้วยบัญชี Super Admin แล้วไปที่ Menu › Apps › Google Workspace › Gmail จากนั้นคลิก Authenticate email
ในช่อง Selected domain เลือกโดเมนที่ต้องการตั้งค่า หน้าจอจะแสดงสถานะปัจจุบันของโดเมนนั้น ถ้ายังไม่เคยตั้งค่าจะเห็นปุ่ม Generate new record และยังไม่มีค่าระเบียนให้คัดลอก
ขั้นตอนที่ 2: สร้างคีย์ DKIM
คลิก Generate new record แล้วเลือกค่าในกล่องที่เปิดขึ้น
- DKIM key bit length: เลือก
2048ซึ่งปลอดภัยกว่า เลือก1024เฉพาะเมื่อผู้ให้บริการ DNS รับค่า TXT ยาวไม่ได้ - Prefix selector: ใช้ค่าเริ่มต้น
googleได้เลย เปลี่ยนเป็นชื่ออื่นเฉพาะเมื่อโดเมนมีระเบียนgoogle._domainkeyที่ระบบอื่นใช้อยู่
คลิก Generate หน้าจอจะแสดงข้อความ DKIM authentication settings updated พร้อมสองค่าที่ต้องนำไปใส่ใน DNS คือ DNS Host name (TXT record name) และ TXT record value ที่ขึ้นต้นด้วย v=DKIM1; k=rsa; p=
อย่าเพิ่งกด Start authentication ในขั้นนี้ เพราะ DNS ยังไม่มีกุญแจสาธารณะ ส่วนข้อความเตือน You must update the DNS records for this domain อาจค้างอยู่ได้ถึง 48 ชั่วโมง ไม่ต้องกังวลถ้าใส่ระเบียนถูกแล้ว
ขั้นตอนที่ 3: เพิ่มระเบียน TXT ที่ผู้ให้บริการ DNS
เข้าหน้าจัดการ DNS ของโดเมน แล้วสร้างระเบียนใหม่ตามค่าที่คัดลอกมา
Type : TXT
Name : google._domainkey
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...IDAQAB
TTL : 3600
ระวังชื่อระเบียน ผู้ให้บริการ DNS ส่วนใหญ่เติมชื่อโดเมนต่อท้ายให้อัตโนมัติ ถ้าพิมพ์ google._domainkey.example.com ลงไปเต็ม ๆ อาจได้ระเบียนผิดเป็น google._domainkey.example.com.example.com
คีย์ขนาด 2048 บิตยาวเกิน 255 ตัวอักษร ซึ่งเป็นขนาดสูงสุดของข้อความหนึ่งชุดใน TXT ระบบ DNS รุ่นใหม่ส่วนมากแบ่งให้เอง ถ้าหน้าจอไม่ยอมรับ ให้แบ่งค่าเป็นหลายชุดในเครื่องหมายคำพูด
google._domainkey.example.com. 3600 IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkq...ส่วนแรก"
"...ส่วนที่สอง...IDAQAB" )
ห้ามมีช่องว่างหรือขึ้นบรรทัดใหม่แทรกกลางคีย์ และอย่าลบระเบียนลายเซ็นของระบบอื่น เช่น ระบบส่งอีเมลการตลาด เพราะแต่ละระบบใช้ selector คนละชื่อและอยู่ร่วมกันได้ ทบทวนพื้นฐานระเบียน TXT ได้ใน คู่มือประเภทของ DNS Record
ขั้นตอนที่ 4: ตรวจว่า DNS เผยแพร่ระเบียนแล้ว
ก่อนกลับไปเปิดใช้งาน ให้ตรวจจากเครื่องของคุณว่าระเบียนออกสู่ภายนอกแล้ว
dig TXT google._domainkey.example.com +short
# บน Windows
nslookup -type=TXT google._domainkey.example.com
ผลลัพธ์ต้องขึ้นต้นด้วย "v=DKIM1; k=rsa; p= และค่าหลัง p= ต้องตรงกับที่ Admin console แสดงทุกตัวอักษร ถ้ายังไม่เห็น ให้รอตามค่า TTL ของโซน ซึ่งมีตั้งแต่ไม่กี่นาทีถึงหลายชั่วโมง Google ระบุว่าอาจใช้เวลาถึง 48 ชั่วโมง วิธีอ่านผล dig อย่างละเอียดอยู่ใน คู่มือตรวจสอบ DNS ด้วย nslookup และ dig