Zwei identische Postfix main.cf-Dateien, aber das Senden von E-Mails über die CLI sieht anders aus

Zwei identische Postfix main.cf-Dateien, aber das Senden von E-Mails über die CLI sieht anders aus

Ich habe kürzlich Postfix getestet und es als Nur-Senden-Mail-Client in unserer virtuellen Umgebung konfiguriert. Ich habe mit den Einstellungen auf einigen virtuellen Maschinen herumgespielt, bis ich es zum Laufen gebracht habe, und habe schließlich die richtigen Werte herausgefunden, die ich eingeben sollte. Unsere Konfiguration ist ziemlich einfach, und ich werde unsere Domäne im Code unten mit dem, was wir verwenden, maskieren.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.example, localhost.localdomain, localhost
relayhost = smtp-relay.gmail.com
mynetworks = 10.0.0.0/8 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

Der Inhalt von /etc/hostname ist unten

mail.example.com

Der Inhalt von /etc/hosts ist unten

127.0.0.1   localhost.localdomain localhost
10.x.x.x    mail.example.com    mail

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Der Inhalt von /etc/mailname unten

example.com

Aus irgendeinem Grund ist diese Konfiguration jedoch identisch mit der eines anderen Servers und stimmt mit diesen Dateien überein. Beim Senden einer E-Mail über die Befehlszeile passiert jedoch ungefähr Folgendes:

echo "testing email" | mail -s "test subject" [email protected]

Auf einem Server wird angezeigt, dass es von[email geschützt]und das andere zeigt, dass es kam von[email geschützt].Ich komme beim besten Willen nicht dahinter und bin mir nicht sicher, wo und welche Einstellung bei diesen beiden Servern unterschiedlich ist (ich habe sie seitdem auch neugestartet und den Postfix-Dienst mehrmals neu gestartet).

Es scheint, als ob eine Systemvariable oder eine andere Konfigurationsdatei abgefragt wird. Ich bin wirklich neugierig und würde gerne verstehen, was hier vor sich geht, und jede Information wäre sehr hilfreich. Vielen Dank!

Update 1: Einschließlich mail.log-Vergleich und postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = mail.example.com, localhost.localdomain, localhost
myhostname = mail.example.com
mynetworks = 10.0.0.0/8 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = smtp-relay.gmail.com
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Mail.log-Vergleich

  • Mail01:uid=1000 from=<operations>
  • Mail02:uid=1000 [email protected]
  • Mail an mail01 wird mit einem bloßen Benutzernamen (Operationen) übermittelt, daher hängt Postfix myorigin an, was[email geschützt].
  • E-Mails an mail02 scheinen mit der vollständigen E-Mail-Adresse als Absender übermittelt worden zu sein, sodass Postfix „myorigin“ nicht anhängt.

Beide laufen auf Ubuntu 14.04.3-VMs, die neu dafür erstellt und vollständig aktualisiert wurden. Wo kann ich nachsehen, wo dieser bloße Benutzername konfiguriert ist? Ich habe /etc/passwd überprüft, aber dort steht nur „Operationen“. Es muss eine Datei oder etwas geben, das ich irgendwo übersehe – haben Sie eine Idee?

Antwort1

Ich habe es herausgefunden. Aus irgendeinem Grund scheint mein /etc/mailname nicht verarbeitet worden zu sein, obwohl es mit dem des anderen Servers identisch war – und die Datei sogar dieselbe MD5-Summe hatte – die Postfix-Konfiguration hat es nicht akzeptiert. Mir ist auch aufgefallen, dass ich auf einem System (dem, das nicht funktionierte und auf dem Postfix nachträglich installiert wurde) mailutils verwendet habe und auf dem anderen bsd-mailx. Ich habe dies ausgetauscht, bevor ich versucht habe, /etc/mailname zu ändern, und es schien keinen Unterschied zu machen, aber ich erwähne es nur für den Fall. Jedenfalls habe ich meinen /etc/mailname in einen falschen Wert wie test geändert, dann ein sudo postfix reload und sudo service postfix restart ausgeführt und es dann wieder auf den beabsichtigten Wert (contoso.com) zurückgesetzt, gefolgt von denselben beiden Befehlen zum Aktualisieren der Konfiguration und des Dienstes, und siehe da, es funktionierte wie beabsichtigt. Danke an alle, die geholfen haben.

verwandte Informationen