Reenvío Unseen
Además de la funcionalidad básica de reenvío (alias), a veces se requiere que el correo se reenvíe a otra dirección pero que permanezca una copia en la bandeja de entrada de alguna cuenta. La opción disponible en Exim4 es unseen, pero en Debian no hay configuración preestablecida para ello.
Para habilitarlo se hará lo siguiente:
Crear un router en /etc/exim4/conf.d/router/ con la prioridad adecuada.
Crear una tabla mysql adicional para almacenar los reenvíos con la opción unseen.
Siguiendo el esquema de Macro-servidor de este manual primero se creará la tabla mediante:
CREATE TABLE `mod_exim4_unseen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL DEFAULT '',
`destination` text NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_email` (`email`)
);
El siguiente paso es la creación del router en la posición adecuada. En mi caso la prioridad la establezco tras los alias y antes de los usuarios virtuales. En la siguiente captura está marcado el fichero y la posición de mi configuración
ls -l /etc/exim4/conf.d/router/
-rw-r----- 1 root root 514 ago 24 2020 00_exim4-config_header
-rw-r----- 1 root root 646 ago 24 2020 100_exim4-config_domain_literal
-rw-r----- 1 root root 556 ago 24 2020 150_exim4-config_hubbed_hosts
-rw-r----- 1 root root 3221 may 4 2021 200_exim4-config_primary
-rw-r----- 1 root root 296 ago 24 2020 270_exim4-config_virtual_aliases_mypanel
-rw-r----- 1 root root 305 ago 24 2020 271_exim4-config_virtual_unseen_mypanel
-rw-r----- 1 root root 261 ago 24 2020 275_exim4-config_virtual_local_user_mypanel
-rw-r----- 1 root root 607 ago 24 2020 300_exim4-config_real_local
-rw-r----- 1 root root 1594 ago 24 2020 400_exim4-config_system_aliases
-rw-r----- 1 root root 878 ago 24 2020 500_exim4-config_hubuser
-rw-r----- 1 root root 2109 may 4 2021 600_exim4-config_userforward
-rw-r----- 1 root root 408 may 4 2021 700_exim4-config_procmail
-rw-r----- 1 root root 328 may 4 2021 800_exim4-config_maildrop
-rw-r----- 1 root root 900 mar 26 2025 850_exim4-config_lowuid
-rw-r----- 1 root root 402 ago 24 2020 900_exim4-config_local_user
-rw-r----- 1 root root 472 ago 24 2020 mmm_mail4root
El contenido del router es el mostrado, pero incluye una definición de consulta SQL que hay que añadir en la configuración general usada en este manual /etc/exim4/conf.d/main/00_exim4-config_custom
virtual_unseen:
debug_print = "R: virtual_unseen for $local_part@$domain"
driver = redirect
domains = +local_domains
allow_fail
allow_defer
data = ${lookup mysql{MYSQL_V_UNSEEN}}
file_transport = address_file
directory_transport = address_directory
unseen
El último paso es añadir la definición de la consulta MYSQL_V_UNSEEN en el fichero /etc/exim4/conf.d/main/00_exim4-config_custom:
MYSQL_V_UNSEEN = SELECT destination FROM mod_exim4_unseen WHERE email='${quote_mysql:$local_part@$domain}'