Nosso aplicativo da Web envia mensagens de email para as pessoas quando alguém publica novo conteúdo. O remetente e o destinatário optaram por receber mensagens de email do nosso aplicativo. Ao preparar essa mensagem, definimos os seguintes cabeçalhos SMTP:
DE: [email protected] PARA: destinatá[email protected] ENVIO: [email protected]
Optamos por usar o endereço de e-mail do autor no cabeçalho FROM, na tentativa de fornecer a melhor experiência para o destinatário; quando a mensagem é exibida no cliente de email, o autor fica claro. Para evitar a aparência de falsificação, adicionamos o cabeçalho SENDER (com o endereço de email da empresa) para deixar claro que enviamos a mensagem em nome do autor. Depois de ler as RFCs 822 e 2822, esse parece ser o uso pretendido do cabeçalho do remetente.
A maioria dos servidores de recebimento de emails parece lidar bem com isso; a mensagem de email é entregue normalmente (supondo que a caixa de correio do destinatário exista, não tenha uma cota excessiva etc.). No entanto, ao enviar uma mensagem de um endereço em um domínio para um endereço no mesmo domínio, alguns domínios de recebimento rejeitam as mensagens com uma resposta como:
571 IP incorreto - psmtp (em resposta ao comando RCPT TO)
Acho que isso significa que o servidor de recebimento viu apenas que o endereço do cabeçalho FROM estava em seu próprio domínio e que a mensagem se originou de um servidor que não considerava autorizado a enviar mensagens para esse domínio. Em outras palavras, o servidor de recebimento ignorou o cabeçalho SENDER.
Temos uma solução alternativa: o aplicativo da web mantém uma lista desses domínios que parecem ignorar o cabeçalho SENDER e, quando os cabeçalhos FROM e TO estão nesse domínio, define o cabeçalho FROM como nosso próprio endereço de email. Mas esta lista requer manutenção.
Existe uma maneira melhor de obter a experiência desejada? Gostaríamos de ser um "bom cidadão" da rede, e todas as partes envolvidas - remetentes e destinatários - desejam participar e receber essas mensagens. Uma alternativa é sempre usar o endereço de e-mail da empresa no cabeçalho FROM e acrescentar o nome / endereço do autor ao assunto, mas isso parece um pouco desajeitado.
From: author
vez deFrom: [email protected]
?Respostas:
Você está olhando para as coisas erradas. Esses são os cabeçalhos da mensagem . Você deve olhar o envelope SMTP . (Como o envelope é especificado depende de como, exatamente, seu aplicativo está enviando correio para o sistema de correio. Em muitos sistemas, o envelope é especificado por argumentos de linha de comando para o programa utilitário de envio de correio.) Dependendo de exatamente quando na transação do protocolo decide emitir essa resposta 571, o servidor de retransmissão SMTP pode nem ter visto os cabeçalhos da mensagem.
O texto da resposta está dizendo que o administrador desse servidor de retransmissão SMTP específico com o qual você está falando restringiu o que você pode colocar no envelope SMTP. Parece estar reclamando da parte do destinatário do envelope. Mas pode ser adiar a validação do remetente do envelope até a especificação do primeiro destinatário; portanto, pode estar reclamando do remetente.
Observe que o remetente do envelope é para onde as mensagens de status de entrega são enviadas e você não deseja que elas sejam direcionadas a pessoas aleatórias em todo o mundo. (Afora o fato de que muitas pessoas não gostam disso, não faz sentido para mensagens de status de entrega para seu e-mail a ser retornado para ninguém além de você.) Especificar a si mesmo como o remetente envelope.
É errado exigir
MX
registros de recursos, a propósito. Um servidor de retransmissão SMTP pode ser localizadoA
eAAAA
registros de recursos na ausência de quaisquerMX
registros de recursos. Veja RFC 5321 § 5.1.fonte
Posso estar errado, mas a causa mais provável do erro acima, especialmente no caso do Postini, é que os domínios nos quais você está sendo rejeitado têm uma política estrita de SPF. A maioria dos servidores de correio com verificação SPF verifica apenas o cabeçalho De:, eles não se importam com o cabeçalho Remetente.
Para verificar se é esse o caso, execute "dig + short TXT domain.com" em que domain.com é o que está fornecendo a mensagem de erro. Você deve receber algo como:
A parte importante é o -all. Isso significa que o proprietário do domínio declarou que apenas enviará emails dos servidores que atuam como servidores de email; todos os outros emails serão rejeitados.
Felizmente, se esse for o caso, você pode verificar ativamente antes de enviar o email! Faça com que o WebApp faça uma verificação do SPF quando o usuário inserir seu endereço de email. Se houver uma política rígida, adicione o domínio à sua lista. Não há escassez de bibliotecas para todos os idiomas que podem fazer verificações de SPF.
fonte