virtusertable Debug-Befehle für den Benutzer root

virtusertable Debug-Befehle für den Benutzer root

Ich verwende Solaris 5.11 und sendmail. Lokale Benutzernamen haben die Form <Buchstaben><Zahlen> (z. B. hn06511). Früher haben wir Aliase verwendet, um auf <Benutzername>@alteDomäne.com zu verweisen.

<Benutzername> <Benutzername>@alteDomäne.com

Jetzt gibt es ein neues E-Mail-Adressschema und eine neue Domäne. Jetzt haben E-Mail-Adressen das Format <Vorname>.<Nachname>@neueDomäne.com.

Daher habe ich die Aliase wie folgt geändert:

<Benutzername> <Vorname>.<Nachname>@neueDomäne.com

Dies funktioniert, jedoch funktioniert <username>@olddomain.com nicht mehr. Um das Ganze noch schlimmer zu machen, gibt es viele Skripte mit fest codierten E-Mail-Adressen im alten Stil.

Ich möchte also <Benutzername>@alteDomain.com -> <Vorname><Nachname>@neueDomain.com ändern. Ich dachte, ich könnte dafür Virtusertables verwenden, also habe ich eine Virtusertable erstellt, die Folgendes enthält:

@altedomain.com %1

Angeblich sollte das <anybody>@olddomain.com nehmen und es nur an den Benutzernamen (%1) weiterleiten. Ich hoffte, dass die Aliase, die ich definiert habe, dann <username> -> <firstname>.<lastname>@newdomain.com übersetzen würden. Aber soweit ich sehen kann, ignoriert sendmail diese virtuelle Tabelle vollständig und versucht die Zustellung an <username>@olddomain.com und schlägt natürlich fehl.

Soweit ich weiß, habe ich die Virtusertable richtig formatiert und Makemap ausgeführt (sollte ich DBM oder Hash verwenden? Ich habe beides gesehen). Soweit ich weiß, habe ich das richtige FEATURE eingefügt und Make ausgeführt und sichergestellt, dass die generierte sendmail.cf am richtigen Ort ist. Ich habe FEATURE als beides ausgedrückt gesehen.

FUNKTION( virtusertable',dbm -o /etc/mail/virtusertable')

Und

FUNKTION( virtusertable',hash -o /etc/mail/virtusertable')

Aber beides funktioniert nicht.

Welche Art von Debugging- oder anderen Informationen kann ich bereitstellen und ausprobieren?

Dank im Voraus.

Antwort1

virtusertable Debug-Befehle für den Benutzer root

Suchen Sie nach @oldomain.comeinem Eintrag in der Virtusertable

echo '/map virtusertable [email protected]' | sendmail -bt

Überprüfen Sie, ob sendmail virtusertable auf E-Mail-Adressen von olddomain.com überprüft

echo '3,0 [email protected]' | sendmail -d60.5 -bt

-d60.5verfolgt Kartensuchvorgänge (auch virtusertable-Suchvorgänge).


Weitere Hinweise:

  1. m4erwartet eine weitere Notierung

    FEATURE(virtusertable,`hash /etc/mail/virtusertable')
    
  2. Machen Sie virtusertable nicht optional. Entfernen Sie es -oaus der FEATUREZeile.
    Bei -osendmail wird fehlende virtusertable ignoriert.

  3. Sendmail verwendet die kompilierte Version von virtusertable. Verwenden Sie dies makemapzum Kompilieren von virtusertable.

  4. virtusertable wird nur für lokale E-Mail-Domänen ( $=w) und $={VirtHost}Domänen konsultiert.

    Verwenden Sie den folgenden Befehl als Root, um beide Domänenlisten abzurufen

    echo '$=w' | sendmail -bt
    echo '$={VirtHost}' | sendmail -bt
    

verwandte Informationen