การทดสอบ SMTP connection กับ G Suite SMTP relay service

ลูกค้า G Suite นอกจากจะได้อีเมลให้ผู้ใช้ในองค์กรแล้ว หากต้องการส่งอีเมลออกจากระบบอื่นๆ เช่น เครื่อง printer หรือ app ภายใน สามารถตั้งค่าให้ส่งผ่าน G Suite SMTP relay service ได้ด้วย โดยไม่ต้องเสีย license user แต่อย่างใด

โควต้าที่ Google ให้ลูกค้า G Suite ใช่ส่งอีเมลผ่าน SMTP relay นั้น คือ 130 เท่าของจำนวน G Suite license โดยโควต้านี้จะนับในช่วงเวลา 24 ชม. ตัวอย่างเช่น หากองค์กรของเรามี G Suite user 100 license ก็จะสามารถส่งอีเมลผ่าน SMTP relay ได้ 13,000 ฉบับ ในทุกๆ 24 ชม. (อ่านเพิ่มเติมได้ที่ SMTP relay: Route outgoing non-Gmail messages through Google)

การตั้งค่าเพื่อให้ printer/app ส่งอีเมลด้วย SMTP relay ได้นั้น ก่อนอื่น ต้องให้ G Suite Admin เข้าไปเพิ่ม IP ขาออกของ printer/app ที่ Admin console ซะก่อน 

ตัวอย่างการตั้งค่าเพื่อเพิ่ม IP จาก printer/app ขององค์กรให้สามารถ relay ผ่าน G Suite ได้

เมื่อเราเพิ่ม IP ใน Admin console เรียบร้อยแล้ว ก็ตั้งค่าให้ printer/app เชื่อมต่อด้วยค่าตามตารางด้านล่าง



หากทุกอย่างเรียบร้อยดี printer/app ที่เราตั้งค่าไว้ ก็จะสามารถส่งอีเมลออก ผ่านทาง SMTP relay ของ Google ได้ แต่หากรอสักพักแล้ว อีเมลยังส่งออกไม่ได้ การ troubleshoot อย่างหนึ่งคือการใช้ SMTP command เพื่อทดสอบการเชื่อมต่อระหว่าง printer/app นั้นๆ ไปที่ SMTP relay

การเชื่อมต่อกับ SMTP relay server ของ G Suite นั้น จะคุยด้วย protocol ที่เข้ารหัสด้วย SSL/TLS ในที่นี้เราจะใช้ OpenSSL บน Windows กันครับ

เมื่อติดตั้ง OpenSSL เรียบร้อย ก็เปิด command shell และใส่คำสั่ง
openssl s_client -starttls smtp -connect smtp-relay.gmail.com:587
ตัวอย่างคำสั่งเพื่อใช้ OpenSSL เพื่อเชื่อมต่อกับ SMTP relay ของ G Suite 

client จะมีเริ่มคุยกับ server เป้าหมาย (ในที่นี้คือ smtp-relay.gmail.com) และเมื่อการเชื่อมต่อสำเร็จก็จะขึ้น promt ให้เราใส่ข้อมูลต่อได้ จากนั้นให้เราค่อยๆ ใส่ข้อมูลไปตามลำดับ โดยใส่ทีละคำสั่งและรอให้ server ตอบกลับมาก่อน จึงค่อยใส่คำสั่งถัดไป จนถึงช่วงที่ใส่ข้อมูล "data" จะสามารถใส่ข้อมูลที่เหลือทั้งหมด และจบด้วย (.)

helo smtp-relay.gmail.com
mail from:<$sender_email>
rcpt to:<$reciever_email>
data
Date: <date>
From: $display_name <$sender_email>
Subject: $subject
To: $reciever_email
$message
.
 
เริ่มจากการทักทายกันก่อน

ค่อยๆ ใส่ทีละคำสั่ง และรอให้ server ตอบกลับให้เรียบร้อย ก่อนใส่คำสั่งถัดไป

เมื่อจบคำสั่งแล้ว ไปลองตรวจที่ปลายทางดู ก็จะเจอมีเมลที่เพิ่งส่งออกด้วย SMTP command เมื่อสักครู่


ลองตรวจสอบ SPF/DKIM/DMARC ดู ก็ผ่านปกติ เนื่องจากเป็นการส่งจาก server ของ G Suite ด้วยโดเมน ซึ่งมีการตั้งค่า SPF/DKIM/DMARC เอาไว้ก่อนแล้ว


หากผู้ดูแลระบบท่านไหน ที่กำลังหา mail server สำหรับให้ app ใช้ส่งอีเมลได้ และองค์กรของท่านใช้งาน G Suite อยู่แล้ว ก็สามารถใช้งาน SMTP relay service ที่ Google เตรียมไว้ให้ได้ครับ หากติดปัญหา app ส่งอีเมลไม่ออก ก็ลอง troubleshoot เบื้องต้น ตามขั้นตอนที่แนะนำไว้ดูนะครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเรียกใช้งาน Google Apps Script

ลดเวลาการเรียก API ใน Apps Script ด้วย fecthAll

ออกแบบระบบให้คุยข้าม module กันได้ ด้วย Pub/Sub