Como tornar o sendmail respeito + -notação para usuários virtuais?

3

Eu tenho diferentes necessidades de encaminhamento para domínios diferentes, que apontam para o meu servidor de e-mail:

[email protected]   [email protected]
[email protected]   [email protected]
@example.com        mylocalaccount

Isso tudo funciona ... No entanto, alguns desses usuários desejam usar a + -notation para fornecer diferentes endereços diferentes aos fornecedores, como user1 + fornecedor @example.com . E essa parte não está funcionando - todos esses e-mails acabam sendo entregues ao catchall mylocalaccount em vez de serem encaminhados corretamente.

Como posso fazer com que [email protected] seja encaminhado para o mesmo destino que [email protected] ?

Eu tentei adicionar entradas como

user1+*@example.com    foo+%[email protected]

mas isso não resolveu o problema ...

Aqui estão os rastreios de depuração:

Sem detalhes:

% sendmail -d60.5 -bv [email protected]
map_lookup(dequote, me, %0=me) => NOT FOUND (0)
map_lookup(dequote, g, %0=g) => NOT FOUND (0)
map_lookup(virtuser, [email protected], %[email protected], %1=g) => [email protected] (0)

... funciona.

Com o detalhe:

% sendmail -d60.5 -bv [email protected]
map_lookup(dequote, me, %0=me) => NOT FOUND (0)
map_lookup(dequote, g+meow, %0=g+meow) => NOT FOUND (0)
map_lookup(virtuser, [email protected], %[email protected], %1=g+meow) => NOT FOUND (0)
map_lookup(virtuser, @example.com, %[email protected], %1=g+meow) => me (0)
map_lookup(dequote, me, %0=me) => NOT FOUND (0)
map_lookup(user, me, %0=me) => me<> (0)
[email protected]... deliverable: mailer local, user me

... não funciona - vem para a conta local catch-all "me".

    
por Mikhail T. 27.07.2017 / 05:42

2 respostas

1

Parece que + está ausente em OperatorChars em seu sendmail.cf . Faz R linhas em sedmail.cf ver um token user+detail em vez de três tokens user + detail .

sendmail.cf gerado a partir de sendmail.mc deve definir OperatorChars como .:%@!^/[]+ , por padrão, para o livro de morcegos . Pode ser alterado no arquivo mc definindo confOPERATORS .

Verifique o que é relatado por grep OperatorChars /etc/mail/sendmail.cf

    
por 28.07.2017 / 08:28
1

Se você quiser virtusertable para redirecionar com + detalhe preservado , tente:

# use %2 if you want to strip EMPTY +detail ([email protected])
[email protected]   foo%[email protected]

Procedimento de depuração
Como root execute sendmail -d60.5 -bv [email protected] .
Ele deve rastrear pesquisas de mapa, incluindo pesquisas de mapa virtusertable. Tente sendmail -d21.12 -d60.5 -bv [email protected] se + detalhes forem removidos antes de pesquisas virtusertíveis.

[email protected] por padrão deve fazer o sendmail procurar as seguintes alternativas virtusertable:

  1. [email protected]
  2. user ++ @ example.com
  3. usuário + * @ example.com
  4. [email protected]
  5. ++ @ example.com
  6. + * @ example.com
  7. @ example.com

[email protected] (mais presentes, mas com detalhes vazios) realiza pesquisas 1 + 3 + 4 + 6 + 7
[email protected] (sem + detalhes presentes) lookups de condutcs 4 + 7

    
por 27.07.2017 / 06:49