MoinMoin attualmente offre due servizi email.
Invio dati di accesso
Se le email sono disponibili, il dialogo delle preferenze dell'utente presenta un campo "Email" e un pulsante "Mail me my account data". L'utente può inserire l'indirizzo email fornito in fase di registrazione e farsi spedire i dati per rieseguire l'accesso.
Notifica delle modifiche
Qualsiasi utente può abbonarsi alle modifiche delle pagine wiki facendo clic sull'icona , o aggiungendo un'espressione regolare al campo "Abbonato/a alle pagine" nelle proprie preferenze. Il sistema quindi invia, ogni qual volta una pagina è modificata, un'email con il nome dell'autore, un collegamento alla pagina e le differenze. L'autore non viene notificato delle proprie modifiche.
Ricezione email
MoinMoin è in grado di ricevere email. È comunque necessario sapere l'indirizzo email del wiki per inviare email. Se viene fornito il nome della pagina prima dell'indirizzo email (MiaPaginaWiki <wiki@example.com) è possibile far entrare le email nel wiki facilmente. Sono da seguire delle semplici regole nello scrivere email:
Da
Viene controllato l'header From: per verificare che sia da un utente del wiki. Ovviamente non è il massimo della sicurezza, ma meglio di niente.
Viene creata una tabella per il controllo delle mail e viene usato l'indirizzo nella parte From: del messaggio per cercare un utente wiki con quel particolare indirizzo. Nel caso venga trovato, viene collegato alla pagina personale dalla colonna From: nella tabella. Se non viene trovata alcuna corrispondenza, viene indicata la parte del nome reale nella colonna From:.
Per / Cc
Il campo To: è composto di due parti, nella forma MODELLO <wiki@example.org>. Viene usata la parte del "nome reale" per cercare il modello della pagina obiettivo (può contenere caratteri speciali, spazi bianchi...) e la parte dell'indirizzo per portarla alla destinazione corretta. La più semplice forma di una pagina modello è proprio il nome di una pagina come CastelliDiSabbia.
Consultare gli esempi per le due differenti modalità di funzionamento.
Quando viene creata una tabella per il controllo delle mail, vengono elaborati i campi To: e Cc; per la colonna To: allo stesso modo di quanto viene fatto per la colonna From:. Non viene incluso l'indirizzo del server wiki e se è solo presente l'indirizzo email del server, viene visualizzato "-".
Oggetto
Il nome della pagina modello può essere estratto (e anche rimosso) dalla prima occorrenza di mail_import_pagename_regex.
Esempi:
Subj: [[Nome pagina obiettivo]] funziona sia all'inizio che alla fine dell'oggetto. Subject: bla bla bla [[NomePagina/$date]]
Il testo di email con un oggetto simile viene aggiunto alla pagina:
Nome pagina obiettivo oppure NomePagina/2006-07-20T14:48:27
L'oggetto verrà usato anche per generare il commento alla modifica, con l'aggiunta del prefisso "Mail: "; le variabili non vengono sostituite in questo caso.
Testo
Il contenuto della nuova pagina è creato da quello presente nella vecchia pagina (se presente) più il contenuto dell'email. Il contenuto della pagina non verrà mai sovrascritto. Le mail inviate come alternative vengono mostrate con il body HTML nella pagina che a sua volta viene elaborato da un processore HTML.
Gli allegati vengono posizionati tra gli allegati della pagina dove viene inserito il contenuto e non verranno mai sovrascritti. Gli allegati saranno collegati nel contenuto della pagina (per esempio con un elenco alla fine della pagina).
Contenuto generato
Se richiesto attraverso un segno "+" (come in + NomePagina/), MoinMoin aggiunge una tabella nella pagina superiore che riporta i dettagli dell'email.
Generazione nome pagina
Sono supportati i segnaposti $from (contenente il nome di chi manda la mail), $date (la data) e $subject (la riga dell'oggetto).
Il nome della pagina è generato come segue:
Viene controllato se uno degli indirizzi obiettivo (to, cc, ...) è presente in mail_import_wiki_addrs
Viene elaborato TO/SUBJECT nell'ordine fornito da mail_import_pagename_search fino a che non viene trovato un nome pagina o bisogna fermarsi:
- Si cerca di recuperare il modello dagli indirizzi obiettivo oppure,
- Si cerca di estrarre il nome della pagina dall'oggetto.
Se non viene trovata una pagina, viene usato mail_import_subpage_template come ultima risorsa.
Viene applicato mail_import_pagename_envelope per estendere (opzionalmente) il nome della pagina.
Se il nome della pagina termina con uno slash, viene aggiunto il valore di email_subpage_template al nome
- Viene usato il modello della pagina nella nuova pagina.