Mavericks + Server.app + getmail (oh my!)

1

Tengo un Mac mini Server con OS X Mavericks 10.9.1 y Server.app v3.0 instalado. IMAP (dovecot) se está ejecutando y se puede acceder desde los clientes de correo.

Lo que quiero es que el servidor obtenga los correos electrónicos de mis diversas cuentas de correo electrónico y los "vuelque" en el servidor IMAP.

Anteriormente, podía hacer esto en Linux utilizando getmail para buscar los correos electrónicos, que enviarían los correos electrónicos a través de procmail , que los entregaría directamente en la carpeta Maildir que dovecot leyó.

Lamentablemente, el proceso anterior no funcionará con Server.app v3.0, ya que aparentemente los directorios /Library/Server/Mail/Data/mail/* debe pertenecer a _dovecot , lo que significa que Joe Random User no puede escribirles, lo que descarta procmail / etc.

¿Existe una manera fácil (-ish) de obtener un flujo de trabajo similar, haciendo que el Servidor recupere los correos electrónicos y los agregue al servidor IMAP local?

¿Qué pasa con el filtrado del lado del servidor? ¿Cómo se puede configurar?

    
pregunta jonp 13.02.2014 - 07:15

1 respuesta

1
  

¿Existe una manera fácil (-ish) de obtener un flujo de trabajo similar, haciendo que el Servidor recupere los correos electrónicos y los agregue al servidor IMAP local?

La clave es usar el programa dovecot-lda ( lda para Local Deliver Agent), que puede escribir mensajes en el servidor IMAP.

Por ejemplo, si usa getmail , podría proporcionar una sección [destination] que invoque dovecot-lda :

[destination]
type      = MDA_external
path      = /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/dovecot-lda 
arguments = ("-d", "USERNAME")
allow_root_commands = True

Tenga en cuenta que se requiere allow_root_commands porque getmail tendrá que ejecutarse como root para invocar dovecot-lda .

Aparte: la ruta para dovecot-lda se especifica en el archivo de configuración postfix /Library/Server/Mail/Config/postfix/master.cf :

dovecot   unix  -       n       n       -       25      pipe
  flags=DRhu user=_dovecot:mail argv=/Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/dovecot-lda -d ${user}
  

¿Qué pasa con el filtrado del lado del servidor? ¿Cómo se puede configurar?

Dovecot está configurado para usar Sieve ( /Library/Server/Mail/Config/dovecot/conf.d/90-sieve.conf ). Las reglas del tamiz se almacenan en /Library/Server/Mail/Data/rules/%u/dovecot.sieve (vea /Library/Server/Mail/Config/dovecot/conf.d/90-sieve.conf ), que desafortunadamente no es fácil de escribir.

Para instalar reglas de Tamiz adicionales, use un editor de Tamices, por ejemplo, Clientes de tamices . Tenga en cuenta que necesita usar el puerto correcto (Server.app utiliza por defecto el puerto 4190; consulte /Library/Server/Mail/Config/dovecot/conf.d/20-managesieve.conf ).

Desafortunadamente, después de pasar demasiado tiempo tratando de hacer que esto funcione, he dejado de usar un cliente Sieve.

Si eres root, crea un archivo .sieve (verifica la sintaxis con sievec ), luego copia a /Library/Server/Mail/Data/rules/%u/dovecot.sieve . Nota: %u es el GUID del usuario, no su nombre de usuario (es decir, debe existir /Library/Server/Mail/Data/mail/%u ), y /Library/Server/Mail/Data/rules/%u debe tener permisos 775 (que el usuario mail pueda escribir).

Si no eres root ... obtén root y ve arriba.

Cuando las reglas del Tamiz están en su lugar, /Library/Logs/Mail/mail-info.log contendrá una línea similar a:

mail-info.log:Feb 13 17:14:52 lda(pid 6108 user USERNAME-NOT-GUID): Info: sieve: msgid=<whatever...>: ...
    
respondido por el jonp 13.02.2014 - 17:37

Lea otras preguntas en las etiquetas