Si el servidor no envía correo y al mirar el fichero /opt/zimbra/log/zmmailboxd.out aparece un mensaje de error 2018-07-04 12:58:16.566:WARN:oejs.HttpChannel:qtp509886383-24433: Could not send response error 500: java.io.IOException: Connection reset by peer
Se supone que deberíamos aumentar la memoria heap pasamos de mailboxd_java_heap_size = 1920 a 4096 <sxh>zmlocalconfig -e mailboxd_java_heap_size=4096</sxh>
Si al hacer un chequeo de los blob <sxh>/opt/zimbra/bin/zmblobchk start</sxh> nos aparecen mensajes del tipo <sxh>Mailbox 150, volume 1, /opt/zimbra/store/0/150/msg/0/361-1901.msg: unexpected blob. File size is 13425.</sxh>
Muchos de los problemas se solucionaran ejecutando como root el siguiente comando para fijar problemas con los permisos de los ficheros. <sxh>/opt/zimbra/libexec/zmfixperms –verbose –extended</sxh>
Si aún después de ejecutar zmfixperms, persisten los errores con los blob,podemos ejecutar : <sxh>zmblobchk –missing-blob-delete-item –export-dir /temp/blob start </sxh> para exportar y eliminar los blob perdidos.
En el caso de que aún tengamos errores del tipo unexpected blob, podemos ejecutar el siguiente script para mover los mensaje con problemas a una carpeta para poder revisarlos. (https://forums.zimbra.org/viewtopic.php?t=13512) <sxh> #!/bin/bash
#Fichero con un listado de los buzones con problemas blobfile=“/opt/tmp/unexp-blobs.lst”
#path donde recreamos la estructura de los ficheros que vamos a mover savedir=“/opt/tmp/unexpected-blobs”
#path donde tenemos los buzones storepath=“/opt/zimbra/store/0/”
#Si no existe creamos el directorio donde vamos a recrear la estructura if [ ! -d “$savedir” ]; then
mkdir -p $savedir
fi
#Si ya existe un fichero de listado blobfile lo eliminamos
if [ -f $blobfile ]; then
rm -f $blobfile
fi
zmblobchk --unexpected-blob-list $blobfile start;
for i in $(cat $blobfile); do
tmpvar1="";mbxdir="";filename="";
tmpvar1="$(dirname $i)"
mbxdir=${tmpvar1#$storepath}
#filename=$(basename $i)
echo $savedir/$mbxdir/$filename
#Creamos la estructura si no existe
if [ ! -d "$savedir/$mbxdir" ]; then
mkdir -p $savedir/$mbxdir
fi
#Movemos los mensajes con problemas
mv -v $i $savedir/$mbxdir/;
done</sxh>
Seguidamente revisamos la integridad de la base de datos <sxh>/opt/zimbra/libexec/zmdbintegrityreport -v</sxh>
Por si es un problema de permisos ejecutar como root <sxh>/opt/zimbra/libexec/zmfixperms</sxh> Si queremos que además revise los directorios /opt/zimbra/store y /opt/zimbra/index le tenemos que añadir la opción -extended <sxh>/opt/zimbra/libexec/zmfixperms -extended</sxh>
También podemos hacer: <sxh>chown -R zimbra:zimbra /opt/zimbra</sxh>
Si el error se mantiene revisar si hay algún proceso que está usando el puerto 25 <sxh>netstat -tulpn </sxh>
Una vez que sabemos el PID del proceso lo matamos con <sxh>kill -p <PID></sxh> y ejecutamos <sxh>zmcontrol start </sxh>
Si al ejecutar <sxh>/opt/zimbra/libexec/zmdbintegrityreport -v</sxh> vemos que tenemos problemas con los indices de algunos buzones la solución sería ejecutar zmdbintegrityreport con la opción de reparación <sxh>/opt/zimbra/libexec/zmdbintegrityreport -r</sxh>.
Si no se soluciona tendremos que realizar la solución a mano. Para ello tomamos nota de los buzones con problemas que nos indica el comando zmdbintegrityreport y realizamos los siguientes pasos desde la consola: