Obtendo mailman3 para jogar bem com postfix e dovecot

3

Estou brincando com o mailman3 e descobri esse problema: o mailman3, a interface da web e o hyperkitty foram instalados usando o mailman-bundler. Eu adicionei a configuração prescrita do postfix a main.cf :

recipient_delimiter = +
unknown_local_recipient_reject_code = 550
owner_request_special = no
transport_maps = hash:/path/to/var/data/postfix_lmtp
local_recipient_maps = hash:/path/to/var/data/postfix_lmtp
relay_domains = hash:/path/to/var/data/postfix_domains

Os arquivos listados são legíveis para o mundo, portanto, não deve haver um problema de permissão. Posso criar um domínio / lista com êxito por meio da interface da Web, mas quando tento enviar e-mails para o endereço da lista, o e-mail é rejeitado com a seguinte mensagem:

Recipient address rejected: User unknown in virtual mailbox table

Esta instalação de postfix normalmente usa um virtual_transport para entregar e-mails para o dovecot. A configuração correspondente é assim:

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
local_recipient_maps = $virtual_mailbox_maps

Isso se baseia no excelente NSA que prova seu e-mail em 2 horas guia.

Agora, esta pergunta do StackOverflow afirma que virtual_transport e transport_maps não funcionam bem juntos, embora eu não consiga encontrar nada na documentação do postfix que verifique essa afirmação. O autor resolveu o problema usando apenas transport_maps , o que não parece ser uma opção para mim.

Observe que também recebo um aviso de que a opção local_recipient_maps do mailman3 substitui a definição anterior como parte da entrega do pombal. Isso pode ser resolvido especificando os dois valores em uma linha como tal:

local_recipient_maps = $virtual_mailbox_maps hash:/path/to/var/data/postfix_lmtp

Mas isso não resolve o problema. Alguém tem alguma idéia ou experiência em fazer isso funcionar? Eu percebo que o mailman3 ainda é considerado novo. É por isso que estou brincando com isso.

    
por Stephan Klein 02.11.2015 / 16:22

1 resposta

1

Eu percebi isso. Acontece que as alegações na pergunta StackOverflow vinculada eram falsas. É realmente possível usar virtual_transport e transport_maps juntos. Meu problema era que a consulta SQL usada para determinar virtual_mailbox_maps naturalmente só retornaria 1 quando a caixa de correio fosse definida no banco de dados. Assim que essa verificação falhou, a mensagem foi rejeitada.

-- from: mysql-virtual-mailbox-maps.cf
query = SELECT 1 FROM virtual_users WHERE name = 'name = '%s'

Adicionar o mapeamento mailman3 à configuração virtual_mailbox_maps resolveu o problema para mim. Esta é minha configuração de trabalho:

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf hash:/path/to/var/data/postfix_lmtp
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
local_recipient_maps = hash:/path/to/var/data/postfix_lmtp mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
transport_maps = hash:/path/to/var/data/postfix_lmtp

Configura virtual_transport para padrão para dovecot, mas permite que seja sobrescrito por transport_maps , que mapeia os endereços da lista para o transporte local mailman.

    
por 02.11.2015 / 20:44