M-am instalat sendmail
pentru a asculta pe portul 1234, mai degrabă decât pe 25, cu o singură modificare sendmail.mc
:
DAEMON_OPTIONS(`Port=1234, Nume=MTA')
Acest lucru funcționează în general, cu o singură excepție. Fundalul este că am un releu care ascultă pe portul 25 (releul trebuie să aibă o înregistrare MX, deci trebuie să fie pe portul 25). Releul trimite e-mailuri prin sendmail, așa că sendmail ascultă localhost:1234
. Cu alte cuvinte, sendmail este responsabil doar pentru trimiterea de e-mailuri și nu pentru primirea lor. netstat
/etc confirmă că releul ascultă pe 25, iar sendmail ascultă pe 1234.
Acest lucru funcționează în aceste două cazuri de testare:
- Pot trimite e-mailuri prin telnet la sendmail (
telnet localhost 1234
)
- Pot trimite e-mailuri de la
melc
cu o modificare adecvată a configurației (setați mta=smtp://localhost:1234
)
Cu toate acestea, această configurație nu funcționează dacă rulez direct sendmail:
sendmail -d8.20 -vt < test-email.txt
În acest caz, sendmail încearcă să trimită e-mailul conectându-se la portul 25 local, deci vorbește de fapt cu releul local, mai degrabă decât cu un server SMTP la distanță. Ieșirea de depanare arată:
[email protected]... Se conectează la [127.0.0.1] prin releu...
220 mydomain.org ESMTP mydomain relay
Acest lucru m-a încurcat - ai idee ce se întâmplă aici?
EDITAȚI | ×
Făcând unele progrese. Sunt pe Sendmail 8.15.2, Ubuntu 20.04.Această problemă nu ar conta cu adevărat, cu excepția faptului că sendmail își șterge cozile MSP cu un job cron care rulează la fiecare 20 de minute, așa că primesc o mulțime de intrări de eșec în syslog și cozi mari de e-mailuri nelivrabile, deoarece sendmail nu se poate găsi.
Problema pare a fi următoarea. Când trimiteți un e-mail (sau gestionați cozile) folosind sendmail, este (în mod normal) un proces în 2 pași. Rulați sendmail, care citește depune.cf
(și nu sendmail.cf
), și acționează ca un MSA, trimițând e-mailul către ceva. Acel ceva este de obicei demonul local sendmail, care citește sendmail.cf
când se ridică.
sendmail.cf
spune sendmail că trebuie să asculte localhost:1234
pentru e-mailurile primite. Aceasta înseamnă că depune.cf
trebuie să conțină o configurație care îi spune programului sendmail să direcționeze e-mailurile trimise localhost:1234
.
Pertinentul depune.mc
config este probabil CARACTERISTICĂ
msp
, care este implicit
FEATURE(`msp', `[127.0.0.1]', `25')
Deci răspunsul este probabil la fel de simplu ca schimbarea 25 la 1234. Cu toate acestea, nu este atât de ușor. Doar schimbarea acestuia, regenerarea fișierelor și repornirea sendmail nu face nicio diferență. De fapt, se regenerează depune.cf
cu oricare m4
sau face
fie nu face nicio diferență, fie vă oferă a cf
fișier cu caracteristica comentată. Există ceva magie undeva care vă permite să schimbați caracteristica, dar habar n-am ce. Răspunsul poate fi în /usr/share/sendmail/cf/feature/msp.m4, dar nu îl văd.