
Cuando un sistema de correo electrónico comienza a mostrar errores de timeout o desconexiones inesperadas, es común que el problema esté en los tiempos de espera configurados en los distintos componentes: PHP, el servidor web, el servidor IMAP/POP (como Dovecot) y el servidor SMTP (como Postfix). Ajustar estos parámetros y contar con un monitoreo adecuado puede marcar la diferencia entre un servicio inestable y uno confiable.
Ajustes de tiempo en PHP
El intérprete PHP, usado en muchas aplicaciones web de correo, corta procesos si exceden cierto límite. Conviene revisar en el archivo php.ini:
max_execution_time = 120
default_socket_timeout = 120
Esto da más margen a las operaciones de red que involucran conexiones IMAP o SMTP. Después de los cambios, se debe reiniciar PHP-FPM o Apache.
Ajustes en el servidor web
Tanto Apache como Nginx pueden interrumpir peticiones largas. En Apache, se recomienda:
Timeout 120
ProxyTimeout 120
En Nginx, los equivalentes serían:
fastcgi_read_timeout 120s;
proxy_read_timeout 120s;
De esta manera, las sesiones con el backend no se interrumpen prematuramente.
Dovecot (IMAP/POP)
En el caso de Dovecot, los parámetros clave están en /etc/dovecot/conf.d/. Algunos valores útiles son:
ssl_handshake_timeout = 60s
imap_idle_notify_interval = 2 mins
login_process_timeout = 120 secs
Estos evitan que la sesión se cierre demasiado rápido por inactividad o retrasos en el handshake TLS.
Postfix (SMTP)
Postfix maneja tiempos de espera para sesiones entrantes (submission) y salientes. En main.cf se pueden aumentar:
smtpd_timeout = 120s
smtpd_data_done_timeout = 120s
smtpd_starttls_timeout = 120s
Esto protege contra cortes durante el envío de mensajes con archivos adjuntos pesados o redes con latencia.
Monitoreo centralizado
No basta con aumentar tiempos; también hay que vigilar los logs para detectar cuellos de botella:
- PHP:
/var/log/php_errors.log - Apache/Nginx:
/var/log/apache2/error.logo/var/log/nginx/error.log - Dovecot:
/var/log/mail.logojournalctl -u dovecot - Postfix:
/var/log/mail.logo/var/log/maillog
Con herramientas como tail -f, journalctl -f o incluso un dashboard centralizado (ej. Grafana con Loki o ELK) se puede ver en tiempo real si el fallo ocurre en el cliente, el servidor web, IMAP o SMTP.
Conclusión
Cuando aparecen errores de timeout en el correo, el diagnóstico debe considerar cada capa: PHP, servidor web, IMAP/POP y SMTP. Ajustar los parámetros de tiempo y monitorear los registros ayuda a mantener la estabilidad y asegura que los usuarios puedan enviar y recibir correos sin interrupciones.
