Por que o DMARC opera no De-address e não no remetente do envelope (Return-Path)?

5

Vários e-mails enviados do meu servidor da Web para um endereço do Gmail, onde From: endereço é [email protected] , foram marcados como spam pelo Gmail. O campo From: é preenchido a partir de dados de formulário e corresponde ao endereço de e-mail real do visitante, que geralmente é um endereço do Gmail. O Return-Path: está sempre apontando para um endereço [email protected] , o que significa que as verificações de SPF e DKIM funcionarão.

Quando inspeciono os e-mails brutos na conta do Gmail, vejo o seguinte:

Delivered-To: [email protected]
...
Return-Path: <[email protected]>
Received: from mywebserver.com (mywebserver.com. [my:ipv6:address])
        by mx.google.com with ESMTPS id xxx
        for <[email protected]>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Tue, 02 Feb 2016 00:40:02 -0800 (PST)
Received-SPF: pass (google.com: domain of [email protected] designates my:ipv6:address as permitted sender) client-ip=xxx;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of [email protected] designates my:ipv6:address as permitted sender) [email protected];
       dkim=pass [email protected];
       dmarc=fail (p=NONE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mywebserver.com; s=mydkim;
    h=Date:Message-Id:Sender:From:Subject:To; bh=w2snQznwxlVRVACmfQELC7VGmD1dcYdiCXbCIRYFKRs=;
    b=a0Vy3Ky43J5FdiWSuQ4qvTTH47G+Js0W/qtRU5gMlxfesNqrlyaIyExaIZlWvHNL4o0LNOF1GI94w4C41mmH+2JIkMEQZazw0MainP7UyUgsm/RZbAWoRuecPv+k108FlsWMP/l1UttXAdlvBVJmV2UGsYYlSSjKErQEF8tv3K0=;
Received: from apache by mywebserver.com with local (Exim 4.80)
    (envelope-from <[email protected]>)
    id 1aQWVF-00009b-2X
    for [email protected]; Tue, 02 Feb 2016 09:40:01 +0100
To: [email protected]
From: Website User <[email protected]>
Sender: [email protected]
...

Observe que as verificações de SPF e DKIM estão passando, mas a verificação de DMARC não está. Após algumas pesquisas, rastreei isso até o DMARC usando o endereço From: para obter seu domínio de referência, de acordo com essa resposta no estouro de pilha .

Três perguntas:

  1. É possível que, de fato, o dmarc=fail seja a causa do e-mail atribuído ao spam pelo Gmail?
  2. Por que o DMARC opera no endereço From: , em vez do Return-Path (remetente do envelope), como o SPF e o DKIM fazem?
  3. Se agora também o cabeçalho From: tiver que corresponder a um endereço @mydomain.com , então como devemos especificar o remetente real (lógico, carne e sangue) da mensagem?
por EelkeSpaak 02.02.2016 / 16:50

2 respostas

5

Pense no SPF e no DKIM como formas de validar o caminho do email e pense no DMARC como uma extensão que também valida o remetente da mensagem. Pense nisso como entregar uma carta da FedEx. É fácil validar de onde o envelope foi enviado e que o correio era legítimo, mas não fornece uma maneira de provar que a carta dentro do envelope é realmente da pessoa cujo nome foi impresso.

Seu servidor da Web é um servidor SMTP válido para mywebserver.com e seu endereço de Remetente é legítimo, mas isso não é suficiente para outros servidores confiarem que você tenha permissão para enviar como [email protected]. Como o GMail sabe que o seu servidor não foi invadido ou usado para intenções maliciosas? Os servidores do Gmail não confiam cegamente em você para enviar e-mails como um de seus usuários - a menos que você esteja hospedado por eles e, provavelmente, tenha problemas para enviar para o Yahoo.

Para abordar sua primeira parte da pergunta, sim, é muito provável que seja por isso que o Gmail o classifica como spam. As formas mais antigas de spam centram-se na falsificação do endereço "De". Isso é o que a maioria dos usuários vê quando recebe uma mensagem e é o principal campo em que deseja confiar. Quando uma mensagem de um servidor de e-mail legítimo é enviada usando um endereço De que não pertence a esse servidor de e-mail, ainda é um sinal vermelho.

Como você mencionou, o DMARC opera no endereço De como parte da especificação. Concedido, torna-se mais difícil escrever aplicativos da web que enviam em nome de alguém, mas esse é o ponto. Quanto a por que eles fazem isso - bem, isso é algo que cabe aos projetistas da especificação, mas é um trade-off. Eles estão tomando a estrada e fazendo um sistema que funciona muito bem se você ficar dentro dessa limitação. Talvez mecanismos futuros encontrem uma maneira de contornar isso.

A solução infeliz é usar apenas endereços dos quais você tem controle. Para resolver sua terceira pergunta, assine suas mensagens com o nome do seu domínio e mencione no corpo que ele foi enviado em nome do [email protected]. Caso contrário, você terá que solicitar que seus destinatários adicionem o endereço à lista de permissões. Não é muito divertido para um desenvolvedor de aplicativos da Web legítimo, mas protege a santidade da caixa de entrada do destinatário. Você pode ter sorte ao usar o cabeçalho Reply-To com o endereço de e-mail do usuário da Web.

Há uma discussão sobre essa limitação em este tópico do DMARC .

Nesse meio tempo, você pode tentar garantir que seu servidor não esteja na lista negra de nenhuma RBL. Pode ser que você possa falhar no DMARC, mas ainda assim passar por alguns filtros de spam se tiver uma reputação boa o suficiente ... mas eu não confiaria nele.

    
por 02.02.2016 / 18:35
2

1) sim, provavelmente a falha do dmarc fará com que o gmail troque seus e-mails

2) também estaria interessado em uma resposta para isso

3) Eu usaria (e nós) o campo de resposta para o endereço do cliente, nossos e-mails se parecem com isso:

de: [email protected]

para: [email protected]

assunto: formulário de contato

responda a: [email protected]

Espero que isso ajude

    
por 02.02.2016 / 18:03