J'ai un serveur Ubuntu exécutant postfix. Ce n'est pas le serveur de messagerie de mon domaine.
Chaque fois qu'un travail cron s'exécute pour root, le courrier de sortie n'est pas remis localement, il est envoyé à [email protected] via le serveur de messagerie principal. Ce n'est pas ce que je veux.
Je souhaite que le courrier pour root soit livré localement ou envoyé à [email protected].
J'ai essayé de modifier les deux ~root/.forward
et /etc/aliases
(et d'exécuter de nouveaux alias), mais rien n'y fait (je suppose que ces fichiers ne sont vérifiés que lorsque postfix essaie de livrer le courrier localement).
Que puis-je faire?
C’est /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
Éditer:
Lors de l'envoi de courrier à root, cela va dans /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
Le nom "ct" est mon nom d'utilisateur. J'ai généré le texte ci-dessus via cette commande:
echo test | mail -s test root
Le contenu de /etc/mailname
est:
mydomain.com
Le contenu de /etc/aliases
est:
root: [email protected]
postmaster: root
où [email protected] est l'endroit où je souhaite que le courrier de root soit transféré.
Le contenu de /etc/hosts
me surprend en fait un peu:
127.0.0.1 localhost
127.0.1.1 linux1.mylinux.mydomain.com linux1
où "mylinux" est le nom d'hôte d'un système d'exploitation hôte sous lequel linux1 s'exécute en tant que machine virtuelle. Je ne sais pas comment "mylinux" est entré là-dedans. (Mais cela pourrait-il vraiment être la raison de mon problème?)
Réponses:
Comme d'habitude, vérifiez vos journaux.
Dans votre cas, le démon postfix pense que le courrier n'est pas pour lui et l'envoie sans utiliser
/etc/aliases
Vérifiez d'abord votre
/etc/hosts
fichier: il devrait avoir le nom de votre machine correspondant127.0.1.1
, comme ceci:Vérifiez
/etc/mailname
aussi, et cela devrait être cohérent.Vérifiez votre
/etc/aliases
pour voir si root (utilisateur) est envoyé à un autre utilisateur et refaites lanewaliases
commande.Et ça devrait marcher!
la source
127.0.0.1
?Si
mydestination
est vide ou ne contient pas,$myhostname
le/etc/aliases
sera ignoré car postfix pense que l'e-mail n'est pas une livraison locale et n'appliquera donc pas les alias locaux. Par conséquent, laissezmydestination
la valeur par défaut (postconf -d mydestination
ou supprimez-lamain.cf
) et les journaux devraient afficher l'to=<...>
adresse comme votre alias.la source
mydestination
doit être vide. Sinon, aucun courrier n'est envoyé.Dans certaines circonstances (c'est-à-dire lorsque tout le courrier est relayé vers un système externe), il est plus facile de simplement définir la
MAILTO
variable dans la crontab de root sur une véritable adresse e-mail. Cela devrait à peu près contourner la livraison traditionnelle à la racine et simplement aller là où vous le souhaitez.la source
Il semble y avoir un problème avec l'ouverture de
/root/.forward
par le démon postfix, au moins sur le système durci (je n'y ai pas creusé). Malgré:L'enfant du démon postfix ne peut pas accéder à .forward:
Je n'ai pas eu le temps de creuser dedans ... L'ajout de l'entrée à
/etc/aliases
suivi parnewaliases
fonctionne très bien.la source