Ich habe einen Ubuntu-Server mit Postfix. Es ist nicht der Mailserver für meine Domain.
Wenn ein Cron-Job für root ausgeführt wird, wird die Ausgabemail nicht lokal zugestellt, sondern über den Haupt-Mailserver an [email protected] gesendet. Das will ich nicht.
Ich möchte, dass Mail für root entweder lokal zugestellt oder an [email protected] weitergeleitet wird.
Ich habe versucht , beide zu modifizieren ~root/.forward
und /etc/aliases
(Laufen newaliases), aber nichts hilft (Ich denke , diese Dateien werden nur geprüft , wenn Postfix versucht Mail lokal zu liefern).
Was kann ich tun?
Das ist /etc/postfix/main.cf
:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
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
myhostname = linux1.mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = linux1.mydomain.com, localhost.linux1.mydomain.com, localhost
relayhost = my.isps.relayhost.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
Bearbeiten:
Wenn Sie E-Mails an root senden, gehen Sie folgendermaßen vor /var/log/mail.log
:
Mar 7 09:39:17 linux1 postfix/pickup[31381]: F3B9C98025E: uid=1000 from=<ct>
Mar 7 09:39:18 linux1 postfix/cleanup[31556]: F3B9C98025E: message-id=<[email protected]>
Mar 7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: from=<[email protected]>, size=283, nrcpt=1 (queue active)
Mar 7 09:39:18 linux1 postfix/smtp[31558]: F3B9C98025E: to=<[email protected]>, orig_to=<root>, relay=my.isps.relayhost.com[<IP address omitted>]:25, delay=0.72, delays=0.19/0.02/0.27/0.25, dsn=2.0.0, status=sent (250 Ok: queued as A97F5D8126)
Mar 7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: removed
Der Name "ct" ist mein Benutzername. Ich habe den obigen Text mit diesem Befehl generiert:
echo test | mail -s test root
Der Inhalt von /etc/mailname
ist:
mydomain.com
Der Inhalt von /etc/aliases
ist:
root: [email protected]
postmaster: root
Wo [email protected] ist, wohin soll die Mail von root weitergeleitet werden?
Der Inhalt von /etc/hosts
überrascht mich tatsächlich ein wenig:
127.0.0.1 localhost
127.0.1.1 linux1.mylinux.mydomain.com linux1
Dabei ist "mylinux" der Hostname eines Host-Betriebssystems, unter dem linux1 als virtuelle Maschine ausgeführt wird. Ich bin nicht sicher, wie "Mylinux" da reingekommen ist. (Aber könnte das wirklich der Grund für mein Problem sein?)
Antworten:
Überprüfen Sie wie üblich Ihre Protokolle.
In Ihrem Fall denkt der Postfix-Daemon, dass die Mail nicht dafür ist, und sendet sie ohne Verwendung von
/etc/aliases
Überprüfen Sie zuerst Ihre
/etc/hosts
Datei: Ihr Computername sollte 127.0.1.1 entsprechen:127.0.1.1 linux1.mydomain.com linux1
Überprüfen Sie
/etc/mailname
auch Ihre , und es sollte konsistent sein.Überprüfen Sie
/etc/aliases
, ob der Root-Benutzer an andere Personen gesendet wurde, und wiederholen Sie dennewaliases
Befehl.Und es sollte funktionieren!
quelle
127.0.0.1
?Wenn
mydestination
leer oder nicht enthalten$myhostname
ist,/etc/aliases
wird das ignoriert, da postfix der Ansicht ist, dass die E-Mail keine lokale Zustellung ist und daher die lokalen Aliase nicht anwendet. Also, lassen Siemydestination
die Standardeinstellung (postconf -d mydestination
oder entfernen Sie sie ausmain.cf
) und die Protokolle der zeigen sollte ,to=<...>
wie Ihre aliased - Adresse.quelle
mydestination
muss leer sein. Ansonsten wird keine Mail versendet.Unter bestimmten Umständen (dh wenn alle E-Mails an ein externes System weitergeleitet werden) ist es einfacher, die
MAILTO
Variable in der crontab von root auf eine echte E-Mail-Adresse zu setzen. Dies sollte die traditionelle Übermittlung an root so gut wie umgehen und einfach dahin führen, wo Sie wollen.quelle
Es scheint ein Problem mit dem Öffnen des
/root/.forward
Postfix-Daemons zu geben, zumindest auf einem gehärteten System (ich habe mich nicht damit befasst). Trotz:Untergeordnetes Element des Postfix-Daemons kann nicht auf .forward zugreifen:
Ich hatte keine Zeit , in sie zu graben ... Anfügen Eintrag
/etc/aliases
von gefolgtnewaliases
funktioniert gut.quelle