Dovecot: Clientes de correo electrónico y carpetas duplicadas

Dovecot: Clientes de correo electrónico y carpetas duplicadas

Entonces, en mi servidor, generalmente tengo un problema: diferentes clientes de correo electrónico llaman a algunas carpetas especiales como Senty Trashcon diferentes nombres, como Sent Itemsy Deleted Items.

Mi pregunta es, ¿puedo de alguna manera "alias" todos esos nombres y asignarlos internamente a una misma Sentcarpeta en el servidor?

Logré cambiar mis dovecot.confsecciones de inclusión como:

mailbox Sent {
    special_use = \Sent
    auto=subscribe
}

mailbox "Sent Messages" {
    special_use = \Sent
}

mailbox "Sent Items" {
    special_use = \Sent
}

¿Es esta la forma correcta de "solucionar" este molesto problema? Parece funcionar, al menos no hay duplicaciones en el servidor, pero algunos clientes de correo electrónico pueden seleccionar todas las carpetas duplicadas.

Gracias.

Respuesta1

Puedes usar elComplemento de alias de buzónRequiere Dovecot 2.1.10+, que crea enlaces simbólicos en el nivel del sistema de archivos para proporcionar un directorio con más de un nombre. Ambos directorios tienen el mismo contenido.

Configuración de ejemplo dondeEnviadoyBasurason los buzones reales para los alias "Elementos enviados" y "Elementos eliminados":

mail_plugins = $mail_plugins mailbox_alias
plugin {
  mailbox_alias_old = Trash
  mailbox_alias_new = Deleted Items
  mailbox_alias_old2 = Sent
  mailbox_alias_new2 = Sent Items
}

No olvides crear los buzones de correo:

namespace inbox {
  mailbox Sent {
    auto = create # or subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
}

La otra posibilidad es crear dos buzones diferentes como mencionaste, copié una parte deconf.d/15-mailboxes.conf

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

Con este método, tendrá dos buzones de envío diferentes. Cuando el usuario elimina uno de ellos, el otro sigue existiendo sin cambios.

Respuesta2

No es necesario utilizar el complemento. Vaya a su directorio de vmail, ejemplo:

cd /var/vmail/example.com/exampleUser/ 

luego, si desea, por ejemplo, que todos los mensajes almacenados en la "Sent Messages"carpeta se almacenen en la carpeta, simplemente mueva "Sent"los archivos a través de su cliente como primer paso."Sent Messages""Sent"

Luego, en la /var/vmail/example.com/exampleUser/mailcarpeta, elimine la "Sent Messages"carpeta oculta:

rm -r /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

Antes de enviar cualquier otro correo electrónico, continúe agregando un enlace simbólico a la carpeta oculta "Sent"desde "Sent Messages"(línea larga aquí, si copia y pega, hágalo con cuidado):

ln -s /var/vmail/example.com/exampleUser/mail/.Sent /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

Esto debería estar funcionando bien. Simplemente repita el mismo procedimiento si desea tener "Sent Items"o "Mail Sent"cualquier otra carpeta vinculada a "Sent"una, o si desea cualquier otra solución con otras carpetas que apunten a otras carpetas y mantenga los correos electrónicos en solo una de ellas.

Si necesita crear dovecot y el cliente para usarlo "INBOX"como "Sent"carpeta, debe crear el enlace simbólico desde la carpeta de correo con el nombre de usuario (línea larga nuevamente):

ln -s /var/vmail/example.com/exampleUser/mail/ /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

a menos que no lo hayas cambiado. Luego edite las /etc/dovecot/conf.d/15-mailboxes.conflíneas:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

u otro equivalente para convertirlos en:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox INBOX {
    special_use = \Sent
  }
  mailbox INBOX {
    special_use = \Sent
  }
}

Como puedes notar, ahora dos son iguales, así que puedes simplemente eliminar uno:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.

  mailbox INBOX {
    special_use = \Sent
  }
}

Entonces debería funcionar bien. Pasé por este proceso porque quería que los correos electrónicos enviados estuvieran en mi carpeta de bandeja de entrada tanto desde mi computadora portátil como desde mi teléfono. El truco del palomar fue suficiente para la computadora portátil, pero el teléfono seguía usando la "Sent Messages"carpeta, así que tuve que usar el truco del enlace simbólico. ¡Tenga mucho cuidado al seleccionar la carpeta correcta "Sent"o "Sent Messages"cualquier carpeta para crear el enlace simbólico hacia y desde!

Supongo que el complemento simplemente crea un enlace simbólico, por lo que estás creando cosas similares. Con esta técnica puedes fusionar todas las carpetas que quieras y mantener a tus clientes trabajando sin cambios. :-)

información relacionada