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.

The one I recommend is Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver. You don’t need to configure much more than a couple things to set it up and after that you can just use whatever email addresses for groups or categories and it will Just Work.

2 curtidas

Thanks for sharing @pfaffman, I did not find that topic. I am old-school guy, therefore I trust the proven schemes used in production. I just suggest rather fast and stable solution. Also I did not find any mention of word alias in relevant search results. So let it be in this howto).

1 curtida

To each his own, but for handling incoming mail to Discourse a container running Postfix is a pretty proven solution. It’s hard to imagine that iRedMail could be faster or more stable, if only because iRedMail includes a bunch of components that you don’t need if all you want to do it get mail delivered to Discourse.

This topic is OK but highly specific to your rather unusual use case. I’m adding a warning to the top of the topic to that effect.

4 curtidas