AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 930199
Accepted
Binarus
Binarus
Asked: 2018-09-11 01:30:14 +0800 CST2018-09-11 01:30:14 +0800 CST 2018-09-11 01:30:14 +0800 CST

Como fazer o Sendmail adicionar um cabeçalho de destinatário(s) evelope a todas as mensagens de e-mail de entrada?

  • 772

Isenção de responsabilidade: eu li algumas das perguntas e artigos aqui e em outros lugares que lidam com a reescrita de cabeçalhos do Sendmail. Não encontrei uma resposta para a pergunta abaixo porque a outra pergunta está relacionada principalmente à reescrita de cabeçalhos (em vez de adicioná-los) e quase todas estão relacionadas a mensagens de saída e ao remetente do envelope (em vez do destinatário do envelope).

Tendo dito isto:

Estou executando um servidor de email, usando o Sendmail 8.14.4 no Debian jessie.

Existem alguns endereços de destinatários de e-mail que são mapeados para a mesma conta de usuário do sistema operacional. Quando o respectivo usuário do sistema operacional lê as mensagens, ele não pode determinar para qual endereço de e-mail as mensagens foram enviadas originalmente.

Portanto, gostaria que o Sendmail adicionasse um cabeçalho personalizado contendo os destinatários do envelope a todas as mensagens de e-mail de entrada.

Acho que poderia explicar melhor meu problema por exemplo:

Suponha que eu tenha dois endereços de e-mail [email protected]e [email protected]. Ambos são mapeados para a conta de usuário O/S offers. Isso funciona até agora: O usuário O/S offers, ao buscar seu e-mail, recebe todas as mensagens enviadas para [email protected]e [email protected].

O problema agora é que ele não consegue determinar para qual endereço de e-mail cada mensagem foi enviada originalmente. Isso significa que: embora ele esteja vendo todas as mensagens que foram enviadas para ambos os endereços de e-mail, ele não pode dizer se uma determinada mensagem foi enviada originalmente para [email protected]ou para [email protected].

Portanto, gostaria de adicionar um cabeçalho personalizado a cada mensagem de entrada, talvez algo assim: X-Envelope-Recipient: <Original envelope recipient>.

Qual seria a maneira mais fácil de fazer isso?

Era uma vez, escrevi algumas regras personalizadas simples para o Sendmail. Mas quase 15 anos se passaram desde então, então eu gostaria de evitar isso e, portanto, espero que haja uma solução fácil ou que alguém possa me apontar na direção certa. Para ser honesto, escrever um milter para resolver meu problema atualmente me parece mais fácil do que reaprender a sintaxe de regras do Sendmail...

EDIÇÃO 1

Conforme solicitado por @AnFi, aqui está a definição do mailer local de sendmail.cf:

Mlocal,         P=/usr/lib/sm.bin/mail.local, F=lsDFMAw5:/|@qPSXnz9, S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL,
                T=DNS/RFC822/SMTP,
                A=mail.local -l -h inbox
sendmail
  • 2 2 respostas
  • 1468 Views

2 respostas

  • Voted
  1. Esa Jokinen
    2018-09-11T02:16:18+08:002018-09-11T02:16:18+08:00

    O que você sugere seria contra o protocolo SMTP: há razões legítimas para adicionar endereços ao RCPT TOcomando, apesar de não existirem nos cabeçalhos To:ou , ou seja, RFC 5321 7.2. Cópias "às cegas" (a ênfase é minha):Cc:

    Os endereços que não aparecem na seção de cabeçalho da mensagem podem aparecer nos comandos RCPT para um servidor SMTP por vários motivos. Os dois mais comuns envolvem o uso de um endereço de correspondência como um "explosor de lista" (um único endereço que se resolve em vários endereços) e o aparecimento de "cópias ocultas". Especialmente quando mais de um comando RCPT está presente, e para evitar anular alguns dos propósitos desses mecanismos, os clientes e servidores SMTP NÃO DEVEM copiar o conjunto completo de argumentos do comando RCPT na seção de cabeçalho, seja como parte dos campos de cabeçalho de rastreamento ou como campos de cabeçalho informativos ou de extensão privada. Uma vez que esta regra é frequentemente violada na prática e não pode ser aplicada, o envio de sistemas SMTP que estão cientes do uso de "bcc" PODE achar útil enviar cada cópia oculta como uma transação de mensagem separada contendo apenas um único comando RCPT.

    Não há relação inerente entre os endereços "reverse" (de MAIL, SAML, etc., comandos) ou "forward" (RCPT) na transação SMTP ("envelope") e os endereços na seção de cabeçalho. Os sistemas de recebimento NÃO DEVEM tentar deduzir tais relacionamentos e usá-los para alterar a seção de cabeçalho da mensagem para entrega. O campo de cabeçalho popular Apparently-toé uma violação deste princípio, bem como uma fonte comum de divulgação não intencional de informações e NÃO DEVE ser usado.

    Apparently-toO cabeçalho não recomendado é controlado com a opção NoRecipientAction=action.

    Defina o comportamento quando não houver cabeçalhos de destinatário ( To:, Cc:ou Bcc:) na mensagem para ação:

    • nonedeixa a mensagem inalterada,
    • add-toadiciona um To:cabeçalho com os destinatários do envelope,
    • add-apparently-toadiciona um Apparently-To:cabeçalho com os destinatários do envelope,
    • add-bccadiciona um cabeçalho vazio Bcc:e
    • add-to-undisclosed adiciona uma leitura de cabeçalho 'To: undisclosed-recipients:;'.

    Observe que normalmente o endereço do destinatário original já está no cabeçalho To:ou . Cc:Ele não deve ser modificado para o nome da conta de usuário offers, portanto, é [email protected], [email protected]ou oculto. Reescrever cabeçalhos tornou-se ainda mais perigoso, pois também pode quebrar assinaturas DKIM. O único caso de uso razoável é a reescrita de endereço para correio com origem local ( userpara [email protected]).


    Adicionar uma lista de todos os RCPT TOendereços violaria o protocolo, mas você só precisa do endereço original únicoRCPT TO para o usuário para o qual o e-mail foi entregue. Não sei como fazer isso com o Sendmail, mas o Postfix (com a configuração padrão) adiciona umX-Original-To: cabeçalho contendo exatamente isso e, adicionalmente, um Delivered-To:cabeçalho contendo a caixa de correio de destino interna ( [email protected]).

    • 1
  2. Best Answer
    AnFi
    2018-09-12T04:45:03+08:002018-09-12T04:45:03+08:00

    Sua pergunta é endereçada pelo Sendmail.org FAQ 3.29

    3.29 Como posso adicionar um cabeçalho especificando o destinatário real quando vários usuários em um domínio virtual vão para uma única caixa de correio?

    Versão curta: Use virtusertable e~offers/.procmailrc

    virtusertable:

    [email protected]  offers+offer1
    [email protected]  offers+offer2
    

    ~offers/.procmailrcdeve obter "mais detalhes" em $1.
    OU
    Você pode usar $h (definido como +detalhe) em cabeçalhos personalizados

    Atenção : você obterá/processará duas cópias de uma mensagem endereçada a ambos [email protected]e[email protected]

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve