Funcionalidades do Correio Electrónico

Actualmente, o MoinMoin oferece dois serviços baseados em correio electrónico, que são explicados nas secções seguintes.

Enviar dados de acesso

Se o correio electrónico estiver disponível, adiciona-se um campo "Your email address" e um botão "Mail me my account data" à caixa de diálogo das PreferênciasDoUtilizador. O utilizador pode inserir o endereço de correio electrónico que forneceu no registo e receber uma mensagem com todos os dados necessários para reentrar, depois de clicar no botão.

Aviso de alteração

Qualquer utilizador pode subscrever alterações das páginas wiki, clicando no ícone de envelope , ou adicionando um regex ao campo de "Páginas de wiki subscritas" nas suas PreferênciasDeUtilizador. Assim, o sistema envia uma mensagem com o autor, uma ligação à página e as diferenças com a alteração, sempre que uma página for modificada e se o autor não desmarcar a caixa de selecção "Send mail notification". O autor não é avisado das suas próprias alterações.

Receber mensagens (apenas 1.6)

É possível receber mensagens no MoinMoin. Essencialmente, precisa de saber qual o endereço de correio electrónico do wiki e de enviar uma mensagem para esse endereço. Se fornecer um nome de página de destino antes do endereço wiki (escrevendo MinhaPáginaDeWiki <wiki@exemplo.com> por exemplo), conseguirá colocar a sua mensagem no wiki muito facilmente. Existem algumas regras para a sua mensagem:

De

Verificamos se o cabeçalho De: é de um utilizador válido de wiki. Claro que não oferece uma segurança real, mas é talvez melhor do que nada.

Ao criar uma tabela geral de mensagens, utilizamos a parte De: do endereço de correio electrónico para tentar pesquisar uma conta de utilizador de wiki com esse endereço de correio electrónico. No caso de encontrarmos algum, estabelecemos a ligação à sua página principal a partir da coluna De: da tabela. Se não encontrarmos uma conta de utilizador correspondente, listamos apenas a parte do nome verdadeiro na coluna De:.

Para / Cc

O Para: é (como sempre) constituído por 2 partes, como MODELO <wiki@exemplo.org>. Utilizamos a parte do "nome verdadeiro" para compor o modelo do nome da página de destino (pode conter caracteres especiais, espaços em branco, etc.) e a parte do endereço de correio electrónico para enviar a mensagem para o destino correcto. A forma mais simples de um modelo de nome de página de destino é um nome de página como PáginaDeTestesWiki.

Veja o exemplo para os 2 modos de operação diferentes.

Ao criar uma tabela geral de mensagens, processamos Para: e Cc: para a coluna Para: da mesma forma que para a coluna De: (ver em cima). Não incluímos o endereço do servidor de wiki (e se só tivermos o servidor de correio electrónico do wiki, apresentamos apenas "-").

Assunto

O modelo do nome da página pode ser igualmente extraído (e igualmente removido) a partir da primeira ocorrência do mail_import_pagename_regex no assunto.

Exemplos:

Subj: ["Nome da página de destino"] funcionará se o colocar no início ou no fim do assunto.
Subject: blá blá blá ["NomeDaPágina/$date"]

O texto das mensagens com este assunto será adicionado às páginas

Nome da página de destino
ou
NomeDaPágina/2006-07-20T14:48:27

O assunto completo será igualmente utilizado para criar um comentário de alteração, com o prefixo de "Mail: "; as variáveis não serão substituídas.

Corpo da mensagem

O conteúdo da nova página é feito a partir do conteúdo da página antiga (se existir) mais o conteúdo da mensagem anexada no fim. O conteúdo da página nunca será sobreposto. As mensagens enviadas como alternativas serão exibidas com a sua estrutura de HTML na página que é processada por um parser de HTML.

Os anexos da mensagem serão colocados numa página de anexos, um nível abaixo da página onde se coloca o conteúdo. Os anexos nunca serão sobrepostos. Os anexos estarão ligados à página de conteúdos (ex: a uma lista de anexos no fim).

Conteúdo gerado

O MoinMoin adiciona um item da tabela à página-mãe, listando os detalhes sobre a mensagem, se for solicitado com um sinal de adição + antes (ex: + NomeDaPágina/).

Criação do nome da página

Os campos $from (que contêm o nome do remetente), $date (a data) e $subject (linha de assunto) são suportados.

O nome da página é gerado da forma que explicamos seguidamente:

  1. Verifique se um dos endereços de destino da mensagem (para, cc, ...) está no mail_import_wiki_addrs
  2. Processe PARA/ASSUNTO pela mesma ordem do que a indicada pelo mail_import_pagename_search até encontrarmos um nome de página ou desistirmos:
    • Tente obter o modelo do nome da página a partir dos endereços de destino, ou
    • Tente extrair o nome da página a partir do assunto (explicado em cima).
  3. Se não encontrámos um nome de página, utilize mail_import_subpage_template como último recurso.
  4. Aplique mail_import_pagename_envelope para acrescentar algo (opcionalmente) ao nome da página.
  5. Se o nome da página terminar com uma barra, anexe a opção de configuração email_subpage_template (ver em cima) ao nome da página.

  6. Expanda o modelo do nome da página para obter o nome da página verdadeiro.