วัตถุประสงค์: จำเป็นต้องติดตั้งเซิร์ฟเวอร์ SMTP (ควร postfix) ที่จะส่งข้อความไปยังผู้ให้บริการอีเมลทั่วไปอื่นๆ เช่น gmail, outlook, yahoo เป็นต้น

ปัญหา: Google Cloud บล็อกการใช้งานพอร์ต SMTP 25 (แต่ไม่ใช่ 465 หรือ 587) และให้รายละเอียดเกี่ยวกับวิธีใช้ผู้ให้บริการอีเมลภายนอกเท่านั้น วิธีแก้ปัญหาอื่นคือการสร้างบัญชี gmail กำหนดค่าการส่งต่อเป็น smtp.gmail.com และใช้บัญชีดังกล่าวเพื่อส่งข้อความ ปัญหาคือขีดจำกัดข้อความรายวันสำหรับการส่งต่ออาจเกินขีดจำกัดด้วยปริมาณข้อความที่คาดว่าจะส่ง

พยายาม:

  1. การส่งข้อความโดยใช้เมลบน ubuntu 18.04 บน google cloud โดยใช้การกำหนดค่า postfix เริ่มต้นและเปลี่ยนเฉพาะ "inet_protocols" เป็น "ipv4" ซึ่งจะทำให้ข้อความหมดเวลาในบันทึก

postfix/smtp[]: เชื่อมต่อกับ ALT2.ASPMX.L.GOOGLE.COM[xxxx]:25: การเชื่อมต่อหมดเวลา

  1. พยายามเปลี่ยนบรรทัดต่อไปนี้ใน master.cf

smtp inet - - y - - smtpd

smtp unix - - y - - smtp

ถึง

587 inet - - y - - smtpd

587 ยูนิกซ์ - - y - - smtp

เพิ่ม "smtp_use_tls = ใช่" ใน main.cf

และรีสตาร์ท postfix สิ่งนี้ทำให้ postfix ฟังและส่งข้อความบนพอร์ต 587 แต่ยังคงให้การนวดเหมือนเดิม

postfix/smtp[]: เชื่อมต่อกับ ALT3.ASPMX.L.GOOGLE.COM[xxxx]:587: การเชื่อมต่อหมดเวลา

  1. ข้อความถูกส่งโดยใช้การกำหนดค่าเดียวกันกับวันที่ 1 ในบริการโฮสติ้งอื่น (พอร์ต 25 ไม่ถูกบล็อก)

มีคนบอกว่า smtp ระหว่างเซิร์ฟเวอร์ใช้งานได้บนพอร์ต 25 เท่านั้น แต่ฉันไม่พบข้อมูลใด ๆ ที่ยืนยันสิ่งนี้ และไม่รู้มากเกี่ยวกับเซิร์ฟเวอร์อีเมลไม่แน่ใจว่าเป็นไปได้หรือไม่ที่จะกำหนดค่าพอร์ตอื่นบน postfix สำหรับสิ่งนี้ ผล.

ฉันแค่เสียเวลาพยายามกำหนดค่านี้บน Google Cloud และควรเปลี่ยนบริการโฮสติ้งหรือไม่ หรือมีวิธีการกำหนดค่า postfix ให้ทำงานกับพอร์ต 25 ที่ถูกบล็อกหรือไม่

answer

นี่เป็นการตัดสินใจครั้งแรกในปี 1982 ด้วยRFC 821 ภาคผนวก Aและเป็นแบบนี้ตั้งแต่นั้นเป็นต้นมา ปัจจุบันพอร์ต TCP 25 ได้รับมอบหมายจาก IANAเพื่อจุดประสงค์นี้เช่นกัน จาก SMTP RFC 5321 :

4.5.4.2. Receiving Strategy

The SMTP server SHOULD attempt to keep a pending listen on the SMTP port (specified by IANA as port 25) at all times. This requires the support of multiple incoming TCP connections for SMTP.

คุณไม่สามารถเปลี่ยนพอร์ตได้ง่ายๆ เนื่องจากไม่มีกลไกสำหรับเซิร์ฟเวอร์ SMTP อื่นที่จะรู้ว่าคุณกำลังใช้พอร์ตที่ไม่ได้มาตรฐาน และคุณไม่สามารถส่งไปยังเซิร์ฟเวอร์อื่นโดยใช้พอร์ตอื่นได้

Google Cloud ไม่ได้ออกแบบมาสำหรับสิ่งนี้ ตามที่อธิบายไว้ในคำแนะนำ: การส่งอีเมลจากอินสแตนซ์ :

Using standard email ports

By default, Compute Engine allows outbound connections on all ports except port 25, which is blocked because of the risk of abuse. All other ports are open, including ports 587 and 465.

Note: Port 25 is always blocked and can't be used, even through an SMTP relay using Google Workspace.

พอร์ต 587 และ 465 พร้อมใช้งานสำหรับการส่งข้อความ SMTP ( RFC 6409 ) ซึ่งหมายความว่าคุณสามารถใช้การส่งต่ออีเมลภายนอก (ของคุณเองหรือจากบุคคลอื่น) สำหรับ SMTP ที่ตรวจสอบสิทธิ์ และเซิร์ฟเวอร์นี้จะจัดการการส่งไปยังระบบอีเมลอื่นบนพอร์ต 25