Colocando como Bcc o usuário [email protected], não queremos que as pessoas recebam essa lista Bcc, além do "usuário" [email protected].
Meta
- Queremos arquivar todos os e-mails que passam pelo postfix, enviados e recebidos. A configuração usa:
- postfix,
- autenticação dovecot com usuários Pam (puxando do LDAP),
- e entrega nas caixas de correio via LMTP da Dovecot .
Queremos incluir os destinatários Cco no arquivo de mensagens.
Não queremos que as pessoas recebam essa lista Cco, além do "usuário" [email protected].
Tentativas
Usando sempre_bcc = [email protected] Funciona. Mas os recibos Bcc (que por direitos estão no envelope como RCPT TO e não em um cabeçalho) se perdem.
Usando: (de acordo com quais opções existem para arquivar e-mail Postfix e preservar qualquer informação BCC no cabeçalho )
main.cf
smtpd_recipient_restrictions =
check_recipient_access pcre:/etc/postfix/prepend.pcre
enquanto a expressão pcre é:
prepend.pcre
/(.+)/ PREPEND X-Envelope-To: $1
que funciona como um encanto : minha mensagem armazenada tem os cabeçalhos Para:; CC; X-Envelope-Para. Se algum dia precisarmos investigar, podemos saber quem recebeu a mensagem mesmo em Cco. (Nota: o X-Envelope-To inclui as pessoas To e Cc, pas bem como os destinatários de domínios externos).
- Para eliminar o X-Envelope-To: Para enviar:
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks.pcre
Com o conteúdo:
smtp_header_checks.pcre
/^X-Envelope-To:/ IGNORE
Tudo certo até lá.
Problema
Para eliminar o X-Envelope-To para e-mails que não saem do servidor. Eu fiz:
lmtp_header_checks = pcre:/etc/postfix/lmtp_header_checks.pcre
lmtp_header_checks.pcre
/^X-Envelope-To:/ IGNORE
Mas isso não é seletivo, mesmo [email protected] perde o cabeçalho que foi "salvo" da lista Bcc.
Não consigo encontrar uma forma de fazer essa seleção de cabeçalho, pois ela avalia apenas a própria linha e não pode usar o destinatário para fazer uma condição (mesmo usando o "if" do pcre). ( http://www.postfix.org/pcre_table.5.html )
Existe alguma variável que pode ser usada? Uma ideia foi: incluir "[email protected]" no cabeçalho X-Envelope-To anexado, no lmtp_header_checks.pcre, incluir algo como: [email protected] diferente de $LMTP_DELIVERY_RECIPIENT Delivered-To ou X-Delivered -Para permanecer um cabeçalho separado que o pcre não pode avaliar como uma variável.
Caso contrário, existe uma maneira de fazer com que o lmtp acione algum milter? E um filtro lmtp_milter simples que posso usar para isso?
Estou perseguindo há dias em todos os documentos possíveis, obrigado antecipadamente
Ai sim ! Muito obrigado.
A linguagem sieve não permitirá iteração em vários
X-Envelope-To
cabeçalhos. Então é preciso passá-lo para um programa externo.Aqui está o que eu inventei:
Se você abrir o arquivo com qualquer MUA, poderá ver o bcc reconstruído. NB: script um pouco mais longo, mas evita a duplicação das pessoas Para na lista Cco.
Use a linguagem Sieve.
Como seu e-mail é entregue via LMTP para o Dovecot, você terá todos os recursos de endereçamento e edição de cabeçalho lá, com um monte de recursos lógicos mais complexos do que aqueles oferecidos por simples verificações de cabeçalho Postfix.
Se você ainda não estiver usando o Pigeonhole sieve, talvez seja necessário habilitá-lo como um plug-in Dovecot, habilitar as extensões necessárias em seu script e configurar um script adequado.
Em seguida, em um script executado globalmente, ou especificamente para usuários que não devem ver o endereço do envelope, exclua o cabeçalho - a menos que entregue na caixa de correio de arquivo: