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

[Cross-posted on blog.niwpopkorn.com]

ลูกค้า 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.commail from:<$sender_email>rcpt to:<$reciever_email>dataDate: <date>From: $display_name <$sender_email>Subject: $subjectTo: $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 เบื้องต้น ตามขั้นตอนที่แนะนำไว้ดูนะครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s