Frage Deaktivieren Sie die lokale Zustellung in Sendmail


Ich benutze Sendmail auf einem Centos-Server, um E-Mails für PHP-Skripte zu senden, aber das Problem besteht darin, dass E-Mails an ein lokales Postfach auf der Maschine und nicht an die MX-Datensätze für die Domäne gesendet werden Verwenden Sie für E-Mail.

Ich möchte, dass sendmail nicht versucht, E-Mails für die Domäne, für die die Maschine eingerichtet ist, lokal zuzustellen. Gibt es eine einfache Möglichkeit, die lokale Zustellung zu deaktivieren?

Die Domäne befindet sich nicht in der Datei local-host-names.

Ich habe schon viel gegoogelt und ich habe mir angeschaut:

Sendmail Configuration, um keine E-Mails an den lokalen Computer zu senden

Deaktivieren Sie die lokale Zustellung in Sendmail

Aber entweder gibt es keine Antwort oder es ist nicht geeignet.

Ich möchte nicht auf einen anderen Server weiterleiten, ich möchte nur, dass Mail unabhängig von der Domain gesendet wird.

Um ein Beispiel zu geben:

Ich habe zwei Server, einer ist der Mail-Server bei mail.example.com und ein Webserver, der example.com ist, wenn ich den SMTP-Dienst auf dem Webserver verwende, leitet er derzeit Mail an ein lokales Postfach auf example.com, aber Es sollte zu Mailboxen auf mail.example.com gehen

Ausgabe von sendmail -bt gibt zurück:

ADDRESS TEST MODE (Regelsatz 3 wird NICHT automatisch aufgerufen)
Eingeben
> 3,0 info@beispiel.com
kanonify input: info @ beispiel. com
Canonify2-Eingang: Info
Canonify2 gibt zurück: info
canonify gibt zurück: info
Eingabe analysieren: Info
Parse0 Eingabe: Info
Parse0 gibt: info zurück
ParseLocal Eingabe: info
ParseLocal gibt Folgendes zurück: info
Parse1 Eingabe: Info
Parse1 gibt zurück: $ # local $: info
Parse-Returns: $ # local $: info

30
2017-09-15 00:10


Ursprung


stalkr.net/forum/...  Es scheint mir am nächsten zu sein, wonach ich eigentlich bin. Speziell die MAIL_HUB Einstellung erwähnt, aber es scheint nicht wirklich zu funktionieren.
Versuchen Sie Folgendes: sendmail -bt und geben Sie dann 3,0 user@domin.com ein. Es wird Ihnen viele Regeln zum Umschreiben geben, die letzten sollten Ihnen das Relais geben, das es benutzen wird. Bitte geben Sie die Ausgabe an. - Francois Wolmarans
Hallo Francois, ich habe meine Frage bearbeitet, um die Ausgabe einzuschließen


Antworten:


Was ich getan habe, um die lokale Zustellung zu deaktivieren. Ich werde die example.com-Domain verwenden.

Bedarf:

  • example.com Ein Eintrag, der auf eine IP-Adresse verweist, die einer der eth-Schnittstellen zugewiesen ist.
  • / etc / hosts, das example.com definiert, das der gleichen IP-Adresse wie oben zugeordnet ist
  • example.com MX-Datensätze, die auf Google-Server verweisen (ASPMX.L.GOOGLE.COM usw.)
  • Standard-sendmail-Installation (meine war auf Ubuntu)

Schritte:

vim /etc/mail/sendmail.mc

Am Ende:

define(`MAIL_HUB', `example.com.')dnl
define(`LOCAL_RELAY', `example.com.')dnl

und dann:

sendmailconfig (or /etc/mail/make depending on your distro)
service sendmail restart

testen:

echo -e "To: user@example.com\nSubject: Test\nTest\n" | sendmail -bm -t -v
echo -e "To: user\nSubject: Test\nTest\n" | sendmail -bm -t -v

Sie sollten sehen, dass die Verbindung zum Google-Server hergestellt wird. Anschließend sollten Sie sehen, dass Ihre E-Mails an Ihren Google-Posteingang übermittelt werden.


36
2018-04-01 13:13



Das hat perfekt funktioniert, ich frage mich nur, da ist ein. nach dem Domain-Namen. - Rodrigo
Arbeitete auch einwandfrei! - Filipe Pina
Arbeitete perfekt, danke! - Sam V
Vielen Dank! Ich habe versucht, das für eine Weile zu beheben. Ich habe Folgendes getan; bereinigen und neu installieren sendmail, run sendmailconfig, füge die Zeilen hinzu, die du angegeben hast sendmailconfig wieder und mach a service sendmail restart und es funktioniert! - Liam Newmarch
@Rodrigo beispiel.com. mit einem abschließenden Punkt ist ein kanonischer FQDN. Das Beispiel.com ohne Punkt ist relativ und daher ungenau, zum Beispiel könnte es example.com.yourdomain.org bedeuten. abhängig von Ihren Betriebssystemeinstellungen. Dies ist genau der gleiche Unterschied wie zwischen /etc/passwd und etc/passwd - kubanczyk


Dank sporker und Pawel hast du mich in die richtige Richtung gebracht, um das zu beheben.

Mein ursprüngliches Problem war, dass sendmail meine Domain example.com E-Mail-Konten als lokale Konten betrachtete.

Diese Links haben sich als sehr nützlich erwiesen: Sendmail an lokale Domain ignoriert MX-Datensätze (Teil 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/367920-sendmail-ignores-mailertable-some-semilocal-domains.html

Aber in meinem Fall, mit FreeBSD 8.2, was war wirklich der Trick:

# cd /etc/mail

# vim freebsd.mc

Fügen Sie diese zwei Zeilen hinzu:

define(`MAIL_HUB', `example.com.')dnl
define(`LOCAL_RELAY', `example.com.')dnl

Kurz bevor:

MAILER(local)
MAILER(smtp)

# make

--- Dies wird ausgegeben ---

 cp freebsd.mc host.example.com.mc
 /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 host.example.com.mc > host.example.com.cf
 cp freebsd.submit.mc host.example.com.submit.mc
 /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 host.example.com.submit.mc > host.example.com.submit.cf

--- Ende der Ausgabe ---

# cp sendmail.cf sendmail.cf.bak

# cp host.example.com.cf sendmail.cf

# /etc/rc.d/sendmail restart

Hoffe, das spart jemandem Kopfschmerzen.


4
2017-11-08 18:16





Ich bin keine sendmail Person, aber ich glaube, dass sendmail jede Domain behandelt, die in /etc/mail/local-host-names als lokale Domain-Namen.
Sie könnten versuchen, diese Datei zu leeren (löschen Sie sie nicht) und sendmail neu starten und sehen, wie Sie vorgehen.

BEARBEITEN
Der Dateiname, den ich erwähnt habe, ist tatsächlich eingestellt sendmail.cf und deins darf nicht eingestellt sein local-host-names
hinein sehen /etc/mail/sendmail.cf zum

# file containing names of hosts for which we receive email 
Fw/etc/mail/local-host-names    

Das sind keineswegs geprüfte Fakten, sondern nur das laute Nachdenken. 


1
2017-09-15 01:15



Ja, deshalb habe ich bereits erwähnt, dass die Domain nicht in der local-host-names Datei ist
Entschuldigung, das bringt mir bei, Fragen zu beantworten, die ich nicht richtig gelesen habe. - aussielunix
Hatte dieses Problem auf einer Reihe von kürzlich gepatchten Solaris 10-Servern (100 oder so gepatcht, aber nur eine Handvoll des Problems). Das war die Lösung! Vielen Dank! - Signal15


Dies ist möglicherweise nicht die Lösung, nach der Sie suchen, aber wenn Ihr Problem darin besteht, dass der Benutzer "admin" oder "root" viele E-Mails und ein riesiges Postfach erhält, sollten Sie einen Cron-Job zum Löschen des Postfachs einrichten jede Woche, jeden Tag usw.

Wir hatten mehrere CentOS-Server mit diesem Problem, aber der Haken war, dass wir in der Lage sein wollten, die Mail manchmal zu lesen, da es manchmal helfen kann, verschiedene Probleme zu diagnostizieren.

Die Lösung bestand darin, den Job einfach zu cronieren und die Box ab und zu zu wischen.

Wenn wir ein Problem finden ... würden wir den Cron-Job (vorübergehend) auskommentieren und die Protokolle und E-Mails nach Hinweisen durchsuchen.

Nur ein Gedanke ... und eine schnelle / einfache Lösung für dich.

Wenn nicht, sehen Sie sich die Datei sendmail.mc an und ändern Sie sie entsprechend.


Schnelles Update:

Das ist nicht genau das, wonach du verlangst, aber vielleicht gibst du dir ein paar Ideen und hilfst dabei, die Dinge für dich zu beleuchten:

http://www.pettingers.org/code/sendmail-local.html


0
2017-09-15 00:22



Tut mir leid, das hat nicht geholfen. Alles, was ich tun möchte, ist, dass ich keine Post vor Ort bekomme, warum macht Sendmail das so schwer?


Ich bin persönlich eher eine Postfix-Person, aber das klingt sehr ähnlich wie Sie den sendenden Server konfiguriert haben, um E-Mails für @ yourdomain.com zu empfangen. Wenn es einen Sendmail-Äquivalent zum Transportmechanismus in Postfix gibt, verwende ich das, um Mail intern zwischen meinen Servern zu routen.


0
2017-09-15 02:09



Ich habe es nicht so viel konfiguriert, wie es der Standard für eine Centos-sendmail-Installation war.


Scheint so, als ob Ihr Regelsatz 3 die Domaininformationen entfernt. Im Folgenden finden Sie einige allgemeine Schritte zur Fehlerbehebung. Wenn dies nicht funktioniert, müssen Sie mir Ihre sendmail.cf senden, um einen Blick darauf zu werfen.

Example.com wird von der Ausgabe als lokale Domäne behandelt. Mach ein nslookup:

setze q = mx

domain.com

Wenn dies die IP-Adresse des lokalen Rechners angibt, müssen Sie Ihre DNS überprüfen. Überprüfen Sie auch in / etc / hosts, ob domain.com nicht aufgeführt ist.

Es scheint auch, die @ domain.com zu streichen, könnten Sie bitte mit etwas wie user@stackoverflow.com versuchen, um zu sehen, ob es es auch als eine lokale Domain auflistet.

Überprüfen Sie auch den Cw-Wert in Ihrer sendmail.cf-Datei.


0
2017-09-15 05:30



Danke Francois, ich beginne die sendmail Interna etwas besser zu verstehen. Ich habe beschlossen, nur den Hostnamen der Maschine zu ändern, um Dinge für jetzt zu umgehen, also ist es jetzt www.example.com anstelle von example.com, was bedeutet, dass es lokale Lieferung für user@www.example.com aber tun würde nicht user@example.com - was für mich in diesem Stadium ein guter Kompromiss ist.


Wahrscheinlich nicht, was Sie wollen, aber SSMTP ist sehr nett für einen nur ausgehenden Server, wo Sie einen Mail-Hub angeben können.


0
2017-09-15 17:50



Danke, ich werde SSMTP einen Blick geben, trotzdem versuche ich noch, sendmail zu reparieren.