Saltar para o conteúdo principal

Caixas de correio IMAP

O que o IMAP abrange​

Qualquer caixa de correio que fale IMAP e SMTP pode ser ligada com uma palavra-passe. Isso inclui o Yahoo, a AOL, o iCloud, o Fastmail, o GMX, o WEB.DE, o Yandex e um domínio próprio numa empresa de alojamento. O Gmail e o Zoho Mail continuam a ligar-se pelo seu próprio início de sessão (veja Caixas de correio), e o Outlook ou o Microsoft 365 está para chegar.

O Campbooks lê o correio, faz no servidor as alterações dos membros (lido, com estrela, arquivar, lixo, spam e fluxos) e envia pelo servidor SMTP da própria caixa de correio. Uma cópia de cada mensagem enviada vai para a pasta Enviados da caixa de correio.

Ativar​

O IMAP vem ativado por omissão. Só precisa da chave secreta da instância, que sela a palavra-passe de cada caixa de correio. Veja A chave secreta da instância.

  • Com a chave definida, Definições, depois Caixas de correio, depois Adicionar uma caixa de correio oferece o IMAP para qualquer endereço que não seja Gmail, Zoho nem Outlook.

  • Sem a chave, o servidor arranca na mesma. Regista um aviso e não oferece o IMAP.

  • Para desativar o IMAP, defina isto no .env e execute docker compose up -d:

    CAMPBOOKS_CONNECTORS__IMAP__ENABLED=false

    Defini-lo como true expressamente enquanto a chave não existe faz o servidor parar, com um erro que nomeia a chave.

Não há nenhum cliente a registar nem nada a configurar no fornecedor. Cada membro cria uma palavra-passe de aplicação no seu fornecedor; veja Ligar a sua caixa de correio para os passos de cada fornecedor.

Como um membro liga uma​

  1. Em Definições, depois Caixas de correio, o membro escolhe Adicionar uma caixa de correio (ou prime Shift C) e escreve o endereço.
  2. O Campbooks descobre como essa caixa de correio se liga:
    • Os endereços Gmail e Zoho seguem para o início de sessão do próprio fornecedor, sem palavra-passe.
    • Os endereços Outlook e Microsoft 365 recebem uma nota a dizer que chegam em breve.
    • Todos os outros endereços recebem o passo da palavra-passe de aplicação. Os fornecedores conhecidos mostram os seus próprios passos e uma ligação para a sua página de ajuda.
  3. O membro cola a palavra-passe de aplicação e escolhe Ligar. Antes de guardar o que quer que seja, o Campbooks inicia sessão no servidor IMAP e autentica-se no servidor SMTP.
  4. Uma secção Avançado mostra o nome de utilizador e os dois servidores. Está fechada e preenchida quando os servidores foram encontrados, e aberta quando não foram.

Como os servidores são encontrados​

O Campbooks procura nestes sítios, por ordem:

  1. Uma cópia da base de dados de fornecedores do Thunderbird, incluída no Campbooks.
  2. O próprio documento de autoconfiguração do domínio.
  3. Os registos SRV do domínio.
  4. O respetivo servidor MX.

O endereço nunca é enviado a terceiros para o procurar.

Só com cifragem​

O Campbooks liga-se apenas por TLS ou STARTTLS e verifica o certificado face ao nome do servidor. Não há opção de texto simples. Um servidor que não ofereça nenhuma das duas é recusado antes de a palavra-passe ser enviada.

A palavra-passe​

A palavra-passe de uma caixa de correio vale mais do que uma autorização OAuth. Não tem âmbito, e o Campbooks não a pode revogar no fornecedor. O Campbooks trata-a assim:

  • É guardada cifrada com a chave secreta da instância e associada à sua ligação.
  • Nunca volta a ser mostrada e nunca é registada nos registos.
  • É apagada quando a caixa de correio é desligada.

Peça aos membros que usem palavras-passe de aplicação. Podem revogar uma palavra-passe de aplicação no fornecedor sem alterar a palavra-passe principal.

A verificação do endereço​

Uma caixa de correio cujo nome de utilizador difere do endereço não pode enviar enquanto o endereço não for verificado. Quando o nome de utilizador é o próprio endereço, o início de sessão já o prova.

  1. O Campbooks envia uma mensagem em texto simples, do endereço para o endereço, pelo servidor SMTP da própria caixa de correio. O seu Message-ID leva um código de utilização única.
  2. Em 15 minutos, uma sincronização da caixa de correio encontra essa mensagem na caixa de entrada.
  3. O endereço fica então marcado como verificado, e a mensagem é removida pelo seu UID. Onde o servidor não o consegue fazer em segurança, é movida para o Lixo ou deixada onde está.

O membro não escreve nada. Definições, depois Caixas de correio, mostra «A verificar o seu endereço…» e depois Verificado. Se a mensagem não for encontrada a tempo, a caixa de correio lê o correio mas o envio continua desligado, e a linha oferece Tentar de novo. Uma caixa de correio tem no máximo 5 verificações por dia.

A verificação tem um limite. O membro tem a palavra-passe da caixa de correio. Quem puder ver o código (porque gere o servidor, ou porque o servidor arquiva o correio enviado onde o pode ler) consegue passar a verificação. Ela impede que um servidor partilhado, que deixa qualquer início de sessão enviar como qualquer endereço, torne o endereço de outra pessoa enviável através do Campbooks. Não impede o operador do servidor de correio.

Regras de rede​

Por omissão, os servidores de correio só são contactados em endereços públicos e apenas nas portas 993, 143, 465 e 587. Se o seu servidor de correio está na sua própria rede, ou usa outras portas, defina:

CAMPBOOKS_CONNECTORS__IMAP__ALLOW_PRIVATE_HOSTS=true
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_ANY_PORT=true

ALLOW_PRIVATE_HOSTS permite endereços privados, de loopback e CGNAT. Os endereços link-local e de metadados da cloud nunca são permitidos. Deixe ambas desativadas numa instância partilhada com pessoas que não conhece.

As tentativas de ligação estão limitadas a 10 por membro e 30 por espaço de trabalho por hora. O início de sessão numa caixa de correio está limitado a 5 inícios de sessão falhados por hora em toda a instância, para que o ecrã não possa ser usado para adivinhar palavras-passe.

Como sincroniza​

O Campbooks consulta as caixas de correio IMAP no mesmo calendário das outras:

  • No espaço de um minuto depois de uma sincronização que encontrou alterações.
  • Recuando até CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDS enquanto a caixa de correio está calma.

Lê todas as pastas (até 200) e, de 6 em 6 horas, percorre os indicadores da janela de cada caixa de correio. Uma caixa de correio nova lê os últimos 90 dias.

Um fluxo sem pasta própria recebe uma pasta Campbooks/<Stream>, até 10 por caixa de correio. O Campbooks nunca apaga nem renomeia uma pasta, e nunca esvazia nenhuma.

Push com IDLE (opcional)​

O IDLE permite que o servidor avise o Campbooks de imediato sobre correio novo, em vez de esperar pela consulta seguinte. Vem desativado por omissão. Para o ativar:

CAMPBOOKS_CONNECTORS__IMAP__IDLE_ENABLED=true

Enquanto o IDLE segura uma caixa de correio, o Campbooks continua a consultá-la como rede de segurança a cada CAMPBOOKS_CONNECTORS__IMAP__IDLE_POLL_SECONDS (900 por omissão). Esse valor tem de ficar entre CAMPBOOKS_CONNECTORS__POLL__MIN_SECONDS e CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDS; caso contrário, o servidor recusa-se a arrancar com o IDLE ativo. Se reduziu POLL__MAX_SECONDS, reduza também IDLE_POLL_SECONDS.

Ajuste fino​

Todas estas definições são opcionais. Adicione-as ao .env e execute docker compose up -d.

VariávelPredefiniçãoO que faz
CAMPBOOKS_CONNECTORS__IMAP__ENABLEDtrueOferece caixas de correio IMAP. Precisa da chave secreta da instância.
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_PRIVATE_HOSTSfalsePermite servidores de correio em endereços privados, de loopback e CGNAT.
CAMPBOOKS_CONNECTORS__IMAP__ALLOW_ANY_PORTfalsePermite portas diferentes de 993, 143, 465 e 587.
CAMPBOOKS_CONNECTORS__IMAP__CONNECT_TIMEOUT_SECONDS10Tempo para abrir uma ligação a um servidor de correio.
CAMPBOOKS_CONNECTORS__IMAP__TIMEOUT_SECONDS30Tempo total que uma verificação de ligação pode demorar; ao ler uma caixa de correio, quanto tempo um comando pode esperar.
CAMPBOOKS_CONNECTORS__IMAP__BACKFILL_DAYS90Quanto tempo atrás lê uma caixa de correio nova, em dias.
CAMPBOOKS_CONNECTORS__IMAP__MAX_MESSAGE_BYTES52428800 (50 MiB)As mensagens maiores são ignoradas e registadas como demasiado grandes.
CAMPBOOKS_CONNECTORS__IMAP__RUN_BUDGET_BYTES67108864 (64 MiB)Uma execução de sincronização não inicia nenhuma transferência depois deste número de bytes e continua na execução seguinte.
CAMPBOOKS_CONNECTORS__IMAP__SWEEP_MINUTES360Minutos entre varrimentos dos indicadores de uma caixa de correio.
CAMPBOOKS_CONNECTORS__IMAP__SESSIONS_PER_HOST4Sessões IMAP abertas em simultâneo a um servidor, em todos os processos.
CAMPBOOKS_CONNECTORS__IMAP__PROVIDER_SESSIONS_PER_HOST200O mesmo, para o servidor de um grande fornecedor (uma lista curta mantida no código).
CAMPBOOKS_CONNECTORS__IMAP__WORKSPACE_SESSIONS_PER_HOST2Sessões que um espaço de trabalho pode manter num servidor.
CAMPBOOKS_CONNECTORS__IMAP__MAX_FOLDERS200O máximo de pastas lidas por caixa de correio.
CAMPBOOKS_CONNECTORS__IMAP__MAX_CREATED_FOLDERS10O máximo de pastas Campbooks/<Stream> criadas por caixa de correio.
CAMPBOOKS_CONNECTORS__IMAP__SEND_PER_HOUR50Mensagens que o início de sessão de uma caixa de correio envia por hora.
CAMPBOOKS_CONNECTORS__IMAP__SEND_RECIPIENTS_PER_MESSAGE50Destinatários que uma mensagem pode ter.
CAMPBOOKS_CONNECTORS__IMAP__SEND_RECIPIENTS_PER_DAY500Destinatários a quem o início de sessão de uma caixa de correio envia por dia.
CAMPBOOKS_CONNECTORS__IMAP__SEND_WORKSPACE_PER_HOUR200Mensagens que um espaço de trabalho envia por hora.
CAMPBOOKS_CONNECTORS__IMAP__SEND_HOST_PER_HOUR1000Mensagens enviadas por hora através de um servidor SMTP, por todos os espaços de trabalho. Os grandes fornecedores não têm limite; nos outros, um espaço de trabalho usa no máximo metade.
CAMPBOOKS_CONNECTORS__IMAP__SEND_MAX_MESSAGE_BYTES26214400 (25 MiB)A maior mensagem enviada. No máximo 35 MiB.
CAMPBOOKS_CONNECTORS__IMAP__SEND_TIMEOUT_SECONDS300Quanto tempo pode demorar uma submissão. No máximo 600.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_ENABLEDfalsePush com IDLE.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_SESSIONS50Caixas de correio que cada worker mantém em IDLE.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_SESSIONS_PER_WORKSPACE5Destas, o máximo para um espaço de trabalho.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_DEBOUNCE_SECONDS30No máximo uma sincronização por caixa de correio neste tempo quando o IDLE comunica alterações.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_REFRESH_MINUTES25Com que frequência o IDLE é renovado. No máximo 29.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_QUIET_DAYS14Uma caixa de correio calma durante este tempo volta à consulta periódica.
CAMPBOOKS_CONNECTORS__IMAP__IDLE_POLL_SECONDS900A consulta de segurança de uma caixa de correio mantida em IDLE.
CAMPBOOKS_CONNECTORS__IMAP__WORKSPACE_IDLE_SESSIONS_PER_HOST10Sessões IDLE que um espaço de trabalho pode manter num servidor.

Resolução de problemas​

O que o membro vêCausa e solução
«O servidor de correio recusou o início de sessão»Palavra-passe errada, ou o fornecedor exige uma palavra-passe de aplicação e foi usada a habitual. Crie uma palavra-passe de aplicação e cole-a. No Yandex, uma palavra-passe de aplicação nova pode demorar algumas horas a funcionar.
«O Campbooks não encontrou os servidores desta caixa de correio»O domínio não publica definições. Escreva os servidores em Avançado: as páginas de ajuda do serviço de alojamento indicam-nos.
«O Campbooks não conseguiu contactar o servidor de correio»O nome ou a porta estão errados, ou uma firewall bloqueia o servidor. Verifique os servidores em Avançado.
«O Campbooks não consegue contactar esse servidor: está numa rede privada…»O servidor está num endereço privado, ou usa uma porta diferente de 993, 143, 465 ou 587. Na sua própria instância, defina ALLOW_PRIVATE_HOSTS ou ALLOW_ANY_PORT (veja Regras de rede).
«O certificado do servidor de correio não é válido para o seu nome»O nome do servidor não corresponde ao seu certificado. Use o nome que consta do certificado, muitas vezes o nome do servidor da empresa de alojamento e não mail. mais o seu domínio.
«Esse servidor não oferece uma ligação cifrada»Use a porta 993 para IMAP e 465 para SMTP, com TLS.
«Demasiados inícios de sessão falhados nesta caixa de correio»Cinco inícios de sessão falhados numa hora. Espere uma hora.
«Não conseguimos verificar este endereço: o envio continua desligado»A mensagem de verificação não chegou à caixa de entrada em 15 minutos. Pode ter ido parar ao Spam. Escolha Tentar de novo, que envia uma nova; se voltar a falhar, verifique o filtro de spam da caixa de correio.
O GMX ou o WEB.DE recusa o início de sessãoO acesso IMAP está desativado nas definições da caixa de correio. Ative-o (POP3 e IMAP) e ligue de novo. Ambos os fornecedores voltam a desativá-lo após longos períodos sem uso.
O IMAP não é oferecido de todoA chave secreta da instância não está definida, ou CAMPBOOKS_CONNECTORS__IMAP__ENABLED=false. Verifique o aviso em docker compose logs server.