So konfigurieren Sie sendmail für die Weiterleitung über einen bestimmten Server


11

Ich habe einen winzigen Heimserver hinter meinem Kabelmodem (Bresnan-Kommunikation). Ich möchte in der Lage sein, dass diese Box E-Mails für Benachrichtigungen und so weiter sendet (nicht empfängt).

Was ich schon gemacht habe:

  • Ich habe sendmail installiert und konfiguriert.
  • Ich habe mail.bresnan.netals meine SMART_HOSTRichtlinie hinzugefügt .

Was ich glaube, ist das Problem

Wenn ich versuche, eine E-Mail zu senden, wird in meinem E-Mail-Protokoll Folgendes angezeigt:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>, 
  size=397, class=0, nrcpts=1,
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<my@work-address.com>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Sie können sehen, wo die Nachricht von meinem sendmail-Server zur Zustellung angenommen wird, wo sie dann versucht, sie an den Server von bresnan weiterzuleiten, und es tritt eine Zeitüberschreitung auf.

Hier ist meine Frage. Asstute-Leser werden feststellen, dass dies pmx0.bresnan.netnicht das ist, als was ich meine SMART_HOSTRichtlinie festgelegt habe. Dies ist der (externe?) MXServer für die Domain bresnan.com/net. Anscheinend hat bresnan sein Netzwerk so konfiguriert, dass Sie nicht von seinem eigenen Netzwerk aus auf diesen Server zugreifen können und stattdessen den mail.bresnan.netServer verwenden müssen (mit dem ich mich verbinden kann). Das Problem ist, dass ich sendmail nicht anweisen kann, diesen Server und nicht die Domain zu verwenden .

Was ich versucht habe

  • Festlegen eines Hosteintrags, sodass der pmx0-Server auf die E-Mail-IP-Adresse verweist. Dies funktioniert nicht, was sinnvoll ist, da sendmail offensichtlich eine MX-Abfrage durchführt, um den Server zu finden, der die IP zurückgibt, sodass keine "normale" DNS-Auflösung erforderlich ist, damit die Hosts-Datei niemals beteiligt wird.

Das Update (für alle ausgehenden E-Mails):

Wieder gehen Requisiten an Webmin (siehe Hinweis unten), um mir dabei zu helfen, dies zu lernen. Wenn Sie Ihren Smarthost mit eckigen Klammern eingeben, die sendmail anweisen, keine MX-Suche define('SMART_HOST','[69.145.248.18]')durchzuführen, funktioniert Folgendes : (Korrigieren Sie die Anführungszeichen-> Backticks) tatsächlich ohne Mailer-Tabelle.

Der Fix (für bestimmte Domains):

Wie unten ausgeführt, ist das Einrichten von a mailertableerforderlich. Wie in der Manpage erwähnt , muss diese Funktion jedoch auch in Ihrer sendmail.mcDatei aktiviert sein .

Beachten Sie außerdem, dass die Mailerroute sendmail nicht zwingt, den angegebenen Server für alle Vorgänge zu verwenden. Sie basiert auf der Adresse des Empfängers. Dies ist für mich eigentlich in Ordnung, da ich nur an einige wenige Domains senden muss (Google Mail, Google Hosted und meine Arbeit).

Zusammenfassung :

  • In FEATURE('mailertable')auf Ihre sendmail.mcDatei. (Beachten Sie, dass das erste Zitat ein Backtick sein sollte.
  • Erstellen Sie Ihre /etc/mail/mailertableDatei (siehe Manpage )
  • Erstellen Sie eine Map-Datei: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Erstellen Sie Ihre Konfigurationen neu make -C /etc/mail
  • Starten Sie sendmail neu: service sendmail restart

HINWEIS: Ich hoch diese Dateien mit WebMin zu bearbeiten / rebuild empfehlen. Ohne sie wäre ich verrückt geworden, um herauszufinden, warum meine Mailertable-Datei ignoriert wurde.


Können wir Ihre sendmail.mc sehen?
Larsks

Haben Sie sendmail nach jeder Änderung neu gestartet, als Sie Änderungen an der Konfigurationsdatei sendmail.mc vorgenommen haben?
ewwhite

Antworten:


7

Sie können die MX-Suche umgehen, indem Sie einen kurzen Eintrag in Ihre sendmail- /etc/mail/mailertableDatei einfügen .

Der Inhalt der Datei sollte wahrscheinlich eine einzelne Zeile haben wie:

bresnan.net       esmtp:[69.145.248.18]

Speichern Sie die Datei und starten Sie sendmail neu (oder erstellen Sie Ihre sendmail.cf neu, wenn dies manuell erfolgen muss).


2
Ihre Antwort war richtig; Ich musste jedoch einige zusätzliche Schritte unternehmen. Für andere, die auf dieses Problem stoßen, siehe meine Bearbeitung oben.
ErebusBat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.