Use aliases no iRedMail para categorias com o recurso de email recebido habilitado

:mega: AVISO — este tópico é muito específico para um caso de uso raro e provavelmente não é o que você deve fazer. Consulte os dois primeiros links abaixo para a configuração recomendada.

Pré-requisitos

Pesquisei no fórum por um artigo claro sobre como configurar um sistema de tickets usando o Discourse e encontrei alguns tópicos brilhantes:

  1. Configuring incoming email to create new topics or group messages
  2. Use Discourse as a Private Support/Ticket System

Perguntas

Infelizmente, não estou familiarizado o suficiente com alguns recursos de servidores de e-mail e não sei como configurar o suporte a reply+mailbox@server.com ou somerandomcode+mailbox@server.com. Como isso funciona mesmo, caramba? :man_facepalming:

Como posso usar múltiplos e-mails atribuídos a diferentes categorias? Como funciona se as configurações do fórum suportarem apenas um endereço de e-mail?

Sim, funciona perfeitamente. Com base naqueles dois tutoriais, entendi os princípios do recebimento de e-mails e das configurações adequadas do fórum. Como mencionado anteriormente, o principal é o recurso de encaminhamento do servidor de e-mail.

Servidor de e-mail básico totalmente funcional

Para quem deseja configurar um servidor de e-mail sem custo, recomendo o iRedMail

  • Aqui há um artigo para configurar um servidor de e-mail baseado em ubuntu + postfix + iredmail em inglês
  • Aqui o mesmo para centos em russo

Alias de e-mail

Após uma instalação padrão, você terá um servidor de e-mail pronto para conectar ao Discourse. Siga os passos 1 e 2 acima e, em seguida, os próximos passos sobre como usar alias de e-mail no iRedMail.

Por exemplo, você criou a caixa de correio master@server.com e duas categorias:

feature
feature -> internal [private]

Você precisa usar suas credenciais de caixa de correio nas configurações de polling POP.

Conecte-se ao shell do seu servidor, use o usuário postgres e conecte-se ao banco de dados (eu uso postgres):

ssh login@server.com
sudo su - postgres
psql

Em seguida, mude para o esquema vmail e crie dois alias:

postgres=# \c vmail
postgres=# INSERT INTO alias (address, domain, active)
VALUES ('feat@server.com', 'server.com', 1);

postgres=# INSERT INTO alias (address, domain, active)
VALUES ('staff@server.com', 'server.com', 1);

No próximo passo, crie os encaminhamentos:

postgres=# INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
VALUES ('feat@server.com', 'master@server.com',
'server.com', 'server.com', 1, 1);

postgres=# INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
VALUES ('staff@server.com', 'master@server.com',
'server.com', 'server.com', 1, 1);

postgres=# \q OU CTRL+D para sair

Você pode verificar as duas tabelas, aliases e forwardings, no seu gerenciador de banco de dados favorito:

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Preste atenção na chave active, ela deve ser 1.

Verificar configurações

Atribua alias de e-mail às categorias e envie um e-mail do endereço do seu usuário registrado. Se necessário, você pode permitir o envio de e-mails anônimos e a criação automática de usuários provisórios com as seguintes configurações:

  • Aceitar e-mails de usuários anônimos sem contas (opcional, configuração de categoria)
  • Habilitar usuários provisórios (se verdadeiro, verifique também aprovar exceto usuários provisórios)
  • polling pop3 habilitado = true
  • host de polling pop3 (seu FQDN)
  • porta de polling pop3 (geralmente 995)
  • usuário de polling pop3 (master@server.com)
  • senha de polling pop3
  • excluir do servidor após polling pop3 (opcional, eu deixo desabilitado para manter a mensagem original no meu cliente de e-mail)
  • registrar falhas no processamento de e-mails (opcional, pois você pode monitorar todos os eventos na aba E-mails)
  • email in = true
  • confiança mínima para email in (uso 0 inicialmente após iniciar meu fórum, também verifique limpar usuários inativos após dias)
  • prefixo de e-mail (opcional, se o título do seu site estiver em CAIXA ALTA, pode aumentar a pontuação de spam em respostas automáticas)
  • habilitar e-mails encaminhados (opcional, ainda está em BETA na versão 2.4.0beta2, às vezes não consegue encontrar o corpo do e-mail)

Verificar e-mails recebidos

Envie e-mails para seus alias e verifique:

/admin/email/received
/admin/email/rejected

Agora, todos os e-mails enviados para master@server.com, feat@server.com ou staff@server.com serão colocados em uma única caixa de correio master@server.com. A diferença é que os e-mails enviados para feat@ serão processados pela categoria feature, e os e-mails enviados para staff@ serão processados pela categoria internal.

Certifique-se de que novos tópicos tenham aparecido! :sunny:

Algumas observações

  • Mesmo que você atribua o e-mail principal master@ a alguma categoria pública ou privada, todos os e-mails serão processados corretamente (sem duplicatas, sem revelar privacidade)
  • A configuração título mínimo do tópico não afeta o comprimento do assunto do e-mail.

Aquele que recomendo é Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver. Você não precisa configurar muito além de algumas coisas para configurá-lo e, depois disso, pode simplesmente usar quaisquer endereços de e-mail para grupos ou categorias e tudo funcionará perfeitamente.

2 curtidas

Obrigado por compartilhar @pfaffman, não encontrei esse tópico. Sou um cara old-school, por isso confio nos esquemas comprovados usados em produção. Apenas sugiro uma solução rápida e estável. Além disso, não encontrei nenhuma menção à palavra alias nos resultados de busca relevantes. Então, vamos deixar assim neste howto).

1 curtida

Cada um com o seu estilo, mas para lidar com e-mails recebidos no Discourse, um container executando o Postfix é uma solução bastante comprovada. É difícil imaginar que o iRedMail possa ser mais rápido ou mais estável, principalmente porque o iRedMail inclui uma série de componentes que você não precisa se o único objetivo for entregar e-mails ao Discourse.

Este tópico está OK, mas é altamente específico para seu caso de uso bastante incomum. Estou adicionando um aviso no topo do tópico para esse efeito.

4 curtidas