ฉันตั้งค่าแล้ว ส่งอีเมล์
เพื่อฟังบนพอร์ต 1234 แทนที่จะเป็น 25 โดยเปลี่ยนเป็น sendmail.mc
:
DAEMON_OPTIONS(`พอร์ต=1234, ชื่อ=MTA')
โดยทั่วไปจะใช้งานได้โดยมีข้อยกเว้นประการหนึ่ง พื้นหลังคือฉันมีรีเลย์คอยฟังอยู่ที่พอร์ต 25 (รีเลย์ต้องมีระเบียน MX ดังนั้นจึงต้องอยู่บนพอร์ต 25) รีเลย์ส่งเมลผ่าน sendmail ดังนั้น sendmail จะรับฟัง localhost:1234
. กล่าวอีกนัยหนึ่ง sendmail มีหน้าที่เพียงส่งจดหมายเท่านั้น ไม่ใช่ผู้รับ เน็ตสแตท
/ etc ยืนยันว่ารีเลย์กำลังฟังที่ 25 และ sendmail กำลังฟังที่ 1234
ใช้งานได้ในกรณีทดสอบทั้งสองนี้:
- ฉันสามารถส่งอีเมลโดย telnet'ing เพื่อ sendmail (
telnet localhost 1234
)
- ฉันสามารถส่งอีเมลจาก
s-เล็บ
ด้วยการเปลี่ยนแปลงการกำหนดค่าที่เหมาะสม (ตั้ง mta=smtp://localhost:1234
)
อย่างไรก็ตาม การตั้งค่านี้ ไม่ ทำงานได้ถ้าฉันเรียกใช้ sendmail โดยตรง:
sendmail -d8.20 -vt < ทดสอบอีเมล.txt
ในกรณีนี้ sendmail พยายามส่งจดหมายโดยเชื่อมต่อกับพอร์ต 25 ภายในเครื่อง ดังนั้นจริงๆ แล้วระบบจะพูดคุยกับรีเลย์ในเครื่อง แทนที่จะเป็นเซิร์ฟเวอร์ SMTP ระยะไกล เอาต์พุตการดีบักแสดง:
[email protected]... กำลังเชื่อมต่อกับ [127.0.0.1] ผ่านรีเลย์...
220 mydomain.org ESMTP mydomain รีเลย์
สิ่งนี้ทำให้ฉันนิ่งงัน มีความคิดอะไรเกิดขึ้นที่นี่บ้าง
แก้ไข
ความคืบหน้าบางอย่าง ฉันใช้ Sendmail 8.15.2, Ubuntu 20.04ปัญหานี้ไม่สำคัญเลย ยกเว้นว่า sendmail ล้างคิว MSP ด้วยงาน cron ที่ทำงานทุก ๆ 20 นาที ดังนั้นฉันจึงได้รับรายการล้มเหลวของ syslog จำนวนมาก และคิวอีเมลที่ไม่สามารถส่งได้เป็นจำนวนมาก เนื่องจาก sendmail ไม่พบตัวเอง
ปัญหาน่าจะเป็นดังนี้ เมื่อคุณส่งอีเมล (หรือจัดการคิว) โดยใช้ sendmail กระบวนการนี้จะมี 2 ขั้นตอน (ตามปกติ) คุณเรียกใช้ sendmail ซึ่งอ่านว่า submit.cf
(และ ไม่ sendmail.cf
) และทำหน้าที่เป็น MSA ส่งอีเมลไปยังบางสิ่ง โดยปกติแล้วบางสิ่งจะเป็น sendmail daemon ในเครื่องซึ่งอ่าน sendmail.cf
เมื่อมันเพิ่มขึ้น
sendmail.cf
บอก sendmail ว่าจำเป็นต้องฟัง localhost:1234
สำหรับจดหมายเข้า นี่หมายความว่า submit.cf
ต้องมีการกำหนดค่าที่บอกโปรแกรม sendmail เพื่อกำหนดเส้นทางอีเมลขาออก localhost:1234
.
เกี่ยวข้อง submit.mc
config น่าจะเป็น คุณสมบัติ
ม.ป.ป
ซึ่งมีค่าเริ่มต้นเป็น
คุณลักษณะ (`msp', `[127.0.0.1]', `25')
ดังนั้น คำตอบอาจง่ายเหมือนเปลี่ยน 25 เป็น 1234 อย่างไรก็ตาม มันไม่ง่ายอย่างนั้น เพียงแค่เปลี่ยน สร้างไฟล์ใหม่ และรีสตาร์ท sendmail ก็ไม่สร้างความแตกต่าง ในความเป็นจริงการสร้างใหม่ submit.cf
ด้วย ม.4
หรือ ทำ
สร้างความแตกต่างเป็นศูนย์หรือให้ a เปรียบเทียบ
ไฟล์ที่มีคุณสมบัติแสดงความคิดเห็นออก มีเวทมนตร์บางอย่างที่ให้คุณเปลี่ยนฟีเจอร์ได้ แต่ฉันไม่รู้ว่ามันคืออะไร คำตอบอาจอยู่ใน /usr/share/sendmail/cf/feature/msp.m4 แต่ฉันไม่เห็น