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

1

Ho un Mac mini Server con OS X Mavericks 10.9.1 e Server.app v3.0 installato. IMAP (dovecot) è in esecuzione e accessibile dai client di posta.

Quello che voglio è avere il server che recuperi le e-mail dai miei vari account e-mail e che le "scarichi" sul server IMAP.

In precedenza ero in grado di farlo su Linux utilizzando getmail per recuperare le e-mail, che invierebbero le email a procmail , che li consegnerebbe direttamente nella cartella Maildir che dovecot legge.

Purtroppo il processo sopra descritto non funzionerà con Server.app v3.0, come apparentemente le /Library/Server/Mail/Data/mail/* directory deve essere di proprietà di _dovecot , il che significa che Joe Random User non può scrivere su di loro, il che esclude procmail / etc.

Esiste un modo semplice (-ish) per ottenere un flusso di lavoro simile, con il server che recupera i messaggi di posta elettronica e li aggiunge al server IMAP locale?

E il filtraggio lato server? Come può essere impostato?

    
posta jonp 13.02.2014 - 07:15
fonte

1 risposta

1

Is there an easy(-ish) way to get a similar workflow, having the Server retrieve emails and add them to the local IMAP server?

La chiave è usare il dovecot-lda programma ( lda per l'agente di consegna locale), che può scrivere messaggi nel server IMAP.

Ad esempio, se utilizzi getmail , potresti fornire una sezione [destination] che richiama dovecot-lda :

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

Tieni presente che allow_root_commands è richiesto perché getmail dovrà essere eseguito come root per richiamare dovecot-lda .

A parte: il percorso per dovecot-lda è specificato nel file di configurazione 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}

What about server-side filtering? How can that be setup?

Dovecot è configurato per l'uso di Sieve ( /Library/Server/Mail/Config/dovecot/conf.d/90-sieve.conf ). Le regole di setacciamento sono memorizzate in /Library/Server/Mail/Data/rules/%u/dovecot.sieve (vedi /Library/Server/Mail/Config/dovecot/conf.d/90-sieve.conf ), che sfortunatamente non è facilmente scrivibile.

Per installare regole Sieve aggiuntive, utilizza un editor Sieve, ad es. Setaccia i clienti . Si noti che è necessario utilizzare la porta corretta (Server.app ha come impostazione predefinita la porta 4190; vedere /Library/Server/Mail/Config/dovecot/conf.d/20-managesieve.conf ).

Purtroppo, dopo aver passato troppo tempo a provare a farlo funzionare, ho rinunciato a utilizzare un client Sieve.

Se sei root, crea un file .sieve (verifica la sintassi con sievec ), quindi copia su /Library/Server/Mail/Data/rules/%u/dovecot.sieve . Nota: %u è il GUID dell'utente, non il loro nome utente (vale a dire /Library/Server/Mail/Data/mail/%u dovrebbe esistere) e /Library/Server/Mail/Data/rules/%u deve disporre delle autorizzazioni 775 (modificabile dall'utente mail ).

Se non sei root ... ottieni root e vedi sopra.

Quando sono attive le regole di Sieve, /Library/Logs/Mail/mail-info.log conterrà una riga simile a:

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

Leggi altre domande sui tag