Tengo un servidor Ubuntu que ejecuta postfix. No es el servidor de correo de mi dominio.
Cada vez que se ejecuta un trabajo cron para root, el correo de salida no se entrega localmente, sino que se envía a [email protected] a través del servidor de correo principal. Esto no es lo que quiero.
Quiero que el correo de root sea entregado localmente o reenviado a [email protected].
Intenté modificar ambos ~root/.forward
y /etc/aliases
(y ejecutar nuevos alias), pero nada ayuda (supongo que estos archivos solo se verifican cuando Postfix intenta entregar el correo localmente).
¿Que puedo hacer?
Esto es /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
Editar:
Al enviar correo a la raíz, esto entra en /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
El nombre "ct" es mi nombre de usuario. Genere el texto anterior a través de este comando:
echo test | mail -s test root
El contenido de /etc/mailname
es:
mydomain.com
El contenido de /etc/aliases
es:
root: [email protected]
postmaster: root
donde [email protected] es donde me gustaría que se reenvíe el correo de root.
El contenido de /etc/hosts
realmente me sorprende un poco:
127.0.0.1 localhost
127.0.1.1 linux1.mylinux.mydomain.com linux1
donde "mylinux" es el nombre de host de un sistema operativo host bajo el cual linux1 se ejecuta como una máquina virtual. No estoy seguro de cómo "mylinux" llegó allí. (¿Pero podría ser esta la razón de mi problema?)
Respuestas:
Como de costumbre, revise sus registros.
En su caso, el demonio postfix piensa que el correo no es para él y lo envía sin usar
/etc/aliases
Primero verifique su
/etc/hosts
archivo: debe tener el nombre de su máquina correspondiente a 127.0.1.1:127.0.1.1 linux1.mydomain.com linux1
Comprueba tu
/etc/mailname
también, y debe ser consistente.Compruebe su
/etc/aliases
para ver si el usuario raíz se envía a otras personas, y rehaga elnewaliases
comando.¡Y debería funcionar!
fuente
127.0.0.1
?Si
mydestination
está vacía o no contiene$myhostname
entonces el/etc/aliases
será ignorado porque Postfix piensa que el correo electrónico no es una entrega local y por lo tanto no se aplicará a los alias locales. Por lo tanto, dejemydestination
el valor predeterminado (postconf -d mydestination
o elimínelomain.cf
) y los registros deben mostrarto=<...>
su dirección con alias.fuente
mydestination
debo estar vacío. De lo contrario, no se envía ningún correo.En algunas circunstancias, (es decir, cuando todo el correo se retransmite a un sistema externo), es más fácil configurar la
MAILTO
variable en el crontab de la raíz a una dirección de correo electrónico real. Esto debería pasar por alto la entrega tradicional a la raíz y simplemente hacer que vaya a donde quieras.fuente
Parece haber algún problema con la apertura del
/root/.forward
demonio postfix, al menos en un sistema reforzado (no profundicé en él). A pesar de:El hijo del demonio postfix no puede acceder a .forward:
No tuve tiempo de profundizar en eso ... Anexar la entrada
/etc/aliases
seguida denewaliases
funciona bien.fuente