Configuració del correu - UPC/mailtoticket GitHub Wiki

Hi ha dues opcions possibles: al servidor MTA o per IMAP.

Configuració al servidor MTA

Nota: Aquest exemple utilitza maildrop com MDA i dmail per gestionar les bústies locals.

Afegiu un àlias de correu amb aquesta pinta (per exemple al fitxer ~/.forward) per l'adreça que rep el correu dels tiquets:

"| /usr/bin/maildrop -d ${USER}"

Creeu el fitxer ~/.mailfilter:

MAILBOX="$HOME/nsmail"
logfile "/tmp/maildrop.log"
log "Inicio log maildrop"
log $SHELL
SHELL="/bin/bash"
log $SHELL
log $DEFAULT
VERBOSE=5
MARK=afd25dad494b9345fa2e0a34dc2aa4c11594c3e7b672f772a7fa003ad80bd09f045a170213ae2ba4f47eb8043ac61a56e44ff031a014b82f7508bc5543960138

RESPALDO="Backup"
PROCESADO="Processat"
NOPROCESADO="INBOX"

log "Copia de seguretat a $RESPALDO"
cc "| /usr/bin/dmail +nsmail/$RESPALDO"

xfilter "/path/to/mailtoticket/mailtoticket.py"

log "MailToTicket executat"

if (/$MARK/)
{
        log "Missatge processat"
        EXITCODE=0
        to "| /usr/bin/dmail +nsmail/$PROCESADO"
        exception {
                log "Error guardant el missatge a $PROCESADO"
        }
}
log "El mensaje no processat"
EXITCODE=0
to "| /usr/bin/dmail +nsmail/$NOPROCESADO"

Configuració via IMAP

Nota: Aquest exemple utilitza sieveshell per configurar els filtres IMAP (podeu fer-ho amb el correu web de la UPC, si ho preferiu) i fetchmail per llegir el correu IMAP.

Configureu un filtre al servidor IMAP amb sieveshell perquè mogui les respostes dels tiquets a la carpeta mailtoticket i els processats a la carpeta processed:

require ["fileinto", "regex"]

# Backup de tot el correu que arriba fins aquí (és recomanable filtrar
# prèviament l'spam, els virus, etc.). Podria ser útil en cas d'errors
# no desitjats, però recordeu de purgar-lo periòdicament.
fileinto "backup";

# Els correus processats correctament pel mailtoticket queden arxivats.
if header :contains "X-Mailtoticket" "SUCCESS" {
   fileinto "processed";
   stop;
}

# Els comentaris de tiquets existents van directament al mailtoticket
if allof (
  header :regex ["In-Reply-To", "References"] ".*-tiquet-id-[0-9]+@gn6",
  not exists "X-Mailtoticket" 
) {
   fileinto "mailtoticket";
   stop;
}

Nota: Si voleu crear un tiquet per qualsevol correu que rebeu a la bústia d'entrada indiqueu INBOX com a carpeta i no configureu el filtre sieve que mou els correus entrants a la carpeta mailtoticket.

Creeu el fitxer ~/.fetchmailrc:

poll imap.upc.edu proto imap:

username  "suport.tic.unitat"
password  "contrasenya"
folder    "mailtoticket"
mda       "$HOME/mailtoticket/local/bin/python $HOME/mailtoticket/mailtoticket.py >/dev/null"
ssl
nokeep

Nota: Podeu indicar nokeep perquè si es produeix algun problema rebreu un informe de l'error amb el correu original adjunt.

Afegiu aquestes línies al crontab de l'usuari perquè s'executi el fetchmail cada 5 minuts (o executeu-lo en mode dimoni):

[email protected]
*/5 * * * * /usr/bin/fetchmail --silent

Configuració IMAP amb Gmail

Amb Gmail ja no es pot utilitzar l'usuari i contrasenya del compte de Google per accedir al correu. Abans existia la possibilitat d'activar l'ús d'aplicacions menys segures però aquesta característica ja no hi és.

Per tal d'accedir via IMAP a la bústia de Gmail es poden utilitzar els mecanismes següents:

Autenticació amb contrasenya d'aplicació

Si hom activa l'autenticació en 2 passes al compte de Google, aleshores s'activa la possibilitat de generar contrasenyes d'aplicació. Amb una d'aquestes contrasenyes, ja es pot accedir a la bústia IMAP de Gmail amb fetchmail, encara que no tingui suport per OAuth2.

Cal anar amb compte perquè si canvia la contrasenya del compte de Google, les contrasenyes d'aplicació s'eliminen i cal tornar-les a generar.

Autenticació via OAuth2

Es tracta d'un mecanisme molt similar al del fetchmail però pensat per a entorns en què el fetchmail no tingui suport d'OAuth2:

https://gitlab.upc.edu/mailtoticket/fetchgmail