Como você garante que o email enviado programaticamente não seja marcado automaticamente como spam?

434

Essa é uma tarefa complicada e sempre confiei em técnicas, como e-mails baseados em permissão (ou seja, apenas enviando para as pessoas para as quais você tem permissão para enviar) e não usando terminologia flagrante de spam .

Ultimamente, alguns dos e-mails que eu envio de forma programática começaram a ser embaralhados automaticamente na pasta de spam das pessoas e estou pensando no que posso fazer sobre isso.

Isso apesar do fato de que esses e-mails específicos não são aqueles que os humanos marcariam como spam, especificamente, são e-mails que contêm chaves de licença pelas quais as pessoas pagaram um bom dinheiro, então eu não acho que elas as considerem spam

Acho que esse é um grande tópico no qual sou essencialmente um simplório ignorante.

Leon Bambrick
fonte

Respostas:

338

Use métodos de autenticação de e-mail, como SPF e DKIM, para provar que seus e-mails e seu nome de domínio estão juntos e para impedir a falsificação de seu nome de domínio. O site do SPF inclui um assistente para gerar as informações de DNS do seu site.

Verifique seu DNS reverso para garantir que o endereço IP do servidor de correio aponte para o nome de domínio que você usa para enviar e-mails.

Verifique se o endereço IP que você está usando não está em uma lista negra

Verifique se o endereço de resposta é um endereço existente válido.

Use o nome completo e real do destinatário no campo Para, não apenas o endereço de e-mail (por exemplo "John Smith" <[email protected]>).

Monitore suas contas de abuso, como [email protected] e [email protected]. Isso significa - verifique se essas contas existem, leia o que é enviado a elas e atue nas reclamações.

Por fim, torná-lo muito fácil cancelar a inscrição. Caso contrário, seus usuários cancelarão a inscrição pressionando o botão de spam , o que afetará sua reputação.

Dito isto, fazer com que o Hotmail aceite seus e-mails continua sendo uma arte negra.

Michiel de Mare
fonte
Você poderia elaborar contas de abuso? Eu não estou certo sobre o que você quer dizer
marcgg
26
brandonchecketts.com/emailtest.php, você pode testar se a configuração do servidor de correio está em conformidade com as teclas de domínio, DKIM, SPF e outros métodos anti-spam.
Jonas
3
Também, fazer uma saltaram-mails de detecção-algoritmo para verificar maus endereços de e-mail (dizer se uma saltos enviar de volta 3 vezes, o envio de parada mails para esse endereço)
clyfe
11
+1 em "Dito isto, fazer com que o Hotmail aceite seus e-mails continua sendo uma arte negra". O Hotmail faz pouca ou nenhuma distinção entre spam e não spam. Tudo está na caixa de entrada ou na caixa de spam (com base nas suas configurações).
Halil Özgür
2
Brandon Checketts moveu a ferramenta de conformidade servidor de email para: dkimvalidator.com
Dana Wheeler
30

Inscreva-se em uma conta no maior número possível de provedores de e-mail (gmail / yahoo / hotmail / aol / etc). Se você fizer alterações nos seus emails, reformulação importante, alterações no código que envia os emails, alterações nos servidores de email, etc., certifique-se de enviar mensagens de teste para todas as suas contas e verifique se elas não estão sendo marcadas como spam.

thelsdj
fonte
2
Alguns sistemas de spam levam em consideração hábitos de leitura individuais. (Os e-mails desse remetente são lidos ou são excluídos sem a leitura? Etc.) Portanto, isso definitivamente ajudará você a descobrir quando eles estão sendo sinalizados (verdadeiro negativo), mas esta etapa não provará que não será para outros usuários no mesmo sistema (falso positivo).
John Adams
26

Você pode pedir aos usuários que adicionem o endereço De aos contatos quando eles concluírem o pedido, o que, se o fizerem, ajudará muito.

Caso contrário, eu tentaria obter um log de alguns de seus usuários. Às vezes, eles têm detalhes sobre o motivo pelo qual foi sinalizado como spam nos cabeçalhos da mensagem, que você pode usar para ajustar o texto.

Outras coisas que você pode tentar:

  • Coloque o nome ou endereço do site no assunto
  • Mantenha todos os links na mensagem apontando para o seu domínio (e não para email.com)
  • Coloque um endereço ou outras informações de contato no email
Daniel Broekman
fonte
24

Alguns pontos de uma resposta anterior :

  • Mais importante: O endereço do remetente ("De") pertence a um domínio que é executado no servidor do qual você envia o email? Caso contrário, faça isso. Nunca use endereços de remetente como [email protected]. Usuário, reply-tose você precisar de respostas para chegar a um endereço diferente.

  • Seu servidor está em uma lista negra (por exemplo, verifique o IP no spamhaus.org)? Essa é uma possibilidade quando você está em hospedagem compartilhada quando os vizinhos se comportam mal.

  • Os e-mails são filtrados por um filtro de spam? Abra uma conta com um freemailer que tenha uma pasta de spam e descubra. Além disso, tente enviar e-mails para um endereço sem nenhuma filtragem de spam.

  • Você possivelmente precisa do quinto parâmetro "-f" de mail () para adicionar um endereço de remetente? (Veja o comando mail () no manual do PHP)

  • Se você tiver acesso aos arquivos de log, verifique-os, é claro.

  • Você verifica o endereço "de:" para possíveis e-mails de devolução ("Retornado ao remetente")? Você também pode configurar um endereço "erros para" separado.
Pekka
fonte
22

Confirme se você tem o endereço de e-mail correto antes de enviar e-mails. Se alguém fornecer o endereço de e-mail errado na inscrição, bata na cabeça o mais rápido possível.

Sempre inclua informações claras sobre "como cancelar a inscrição" em TODOS os e-mails. Não exija que o usuário faça login para cancelar a inscrição, ele deve ser um URL exclusivo para cancelar a inscrição com um clique.

Isso impedirá que as pessoas marquem seus e-mails como spam, porque "cancelar a inscrição" é muito difícil.

engtech
fonte
11
+1 para um URL exclusivo para cancelar a inscrição com um clique. Detesto fazer login para cancelar a inscrição. Marquei aqueles como SPAM!
Shyju 4/09/12
16

Além de todas as outras respostas, se você estiver enviando emails em HTML que contêm URLs como texto vinculado, verifique se o URL corresponde ao texto vinculado. Eu sei que o Thunderbird os sinaliza automaticamente como sendo uma farsa, se não.

O caminho errado:

Go to your account now: <a href="http://www.paypal.com.phishers-anonymous.org/">http://www.paypal.com</a>

O caminho certo:

Go to your account now: <a href="http://www.yourdomain.org/">http://www.yourdomain.org</a>

Ou use um texto de link não relacionado em vez de um URL:

<a href="http://www.yourdomain.org/">Click here to go to your account</a>
Mike
fonte
1
Olá Mike, tenho dois domínios, ou seja, domain1.com e domain2.com. Seu código está funcionando para domain1.com, mas não para domain2.com. Não sei porque? Eu não mudei nenhum pensamento. stackoverflow.com/questions/42200904/…
Naren Verma
1
@NarendraVerma Não parece que minha resposta se aplica a você neste caso. Eu recomendo olhar para as outras respostas aqui para ver se algo mais funciona para você. No final, cabe ao provedor de e-mail decidir o que eles consideram spam e o que deixam passar, e cada um tem vários fatores diferentes. Na verdade, o Gmail fornece uma breve descrição do motivo pelo qual as mensagens são marcadas como spam se você clicar na mensagem de spam.
13767 Mike
1
Obrigado por responder Mr.Mike, na verdade eu apliquei sua resposta no domínio1 e isso está funcionando. Estou usando o PHpMailer e adicionei como $ email_body = "<a href=' domain1.com'> Exibir </ a >". Isso está funcionando perfeitamente.
Naren Verma
1
Não sei por que o segundo domínio2 não está funcionando. Claro, entrarei em contato com a equipe do Gmail. Mais alguma sugestão neste código?
Naren Verma
@NarendraVerma Não há nada de errado com o seu código.
1455 Mike
15

Você pode considerar um serviço de email de terceiros que lida com problemas de entrega:

  • Alvo exato
  • Resposta Vertical
  • Contato constante
  • Campaign Monitor
  • Emma
  • Caminho de Retorno
  • IntelliContact
  • SilverPop
Zack Peterson
fonte
15

A entrega de email pode ser como magia negra às vezes. O DNS reverso é realmente importante.

Eu achei muito útil rastrear cuidadosamente as notificações de falha na entrega. Dirijo todos os meus NDRs para um único endereço e tenho um serviço do Windows analisando-os (Google ListNanny). Coloco o máximo possível de informações da notificação de falha na entrega em um banco de dados e, em seguida, gero relatórios para verificar se de repente comecei a ser bloqueado por um determinado domínio. Além disso, evite enviar e-mails para endereços marcados anteriormente como NDR, porque geralmente é uma boa indicação de spam.

Se você precisar enviar vários e-mails de atendimento ao cliente de uma só vez, é melhor colocar um atraso entre cada um, porque se você enviar muitos e-mails quase idênticos para um domínio de cada vez, você certamente terminará lista negra.

Às vezes, é impossível entregar alguns domínios. Comcast.net é o pior.

Verifique se seus IPs não estão listados em sites como http://www.mxtoolbox.com/blacklists.aspx .

Eric Z Beard
fonte
2
O que é um NDR? Você pode por favor elaborar?
Pykih
2
Relatório de falha na entrega, também conhecido como mensagem de devolução .
tripleee
14

Detesto dizer, mas eu e outras pessoas podemos estar usando padrões da lista branca para controlar nossa filtragem de spam.

Isso significa que todos os emails de uma fonte desconhecida são automaticamente spam e desviados para uma pasta de spam. (Não deixo meu serviço de email excluir spam, porque quero sempre revisar as chegadas em busca de falsos positivos, algo que é bastante fácil de fazer com uma verificação rápida da pasta.)

Eu até tenho um email meu indo para o grupo de spam porque (1) geralmente não envio e-mail para mim mesmo (2) existem spammers que falsificam meu endereço de retorno em spam enviado para mim.

Portanto, para sair da designação de spam, devo considerar que seu e-mail pode ser legítimo (das informações do remetente e do assunto) e abri-lo primeiro em texto sem formatação (meu padrão para todos os e-mails recebidos, spam ou não) para ver se é legítimo . Minha pasta de spam não usará nenhum link nos emails, por isso estou protegido contra links complicados de imagem e outros comportamentos inadequados.

Se desejar que as chegadas futuras da mesma fonte sejam enviadas para a minha caixa de entrada e não sejam desviadas para revisão de spam, especificarei isso para o meu cliente de email. Para as organizações que usam encaminhadores de correio em massa e endereços de remetente exclusivos por correspondência, isso é muito ruim. Eles nunca obtêm minha aprovação e sempre aparecem na minha pasta de spam, e se eu estiver ocupado, nunca vou olhar para eles.

Por fim, se um email não for legível em texto sem formatação, mesmo quando enviado como HTML, é provável que apenas o exclua, a menos que seja algo que eu saiba que seja do meu interesse em virtude da fonte e de experiências valiosas anteriores.

Como você pode ver, ele está sob o controle de um usuário e não existe nenhum ato automatizado que convencerá esse sistema de que seu e-mail é legítimo apenas da sua estrutura. Nesse caso, você precisa ser legal, não fazer nada parecido com phishing e facilitar para que os usuários dispostos a confiar nos seus e-mails o incluam na lista branca deles.

orcmid
fonte
13

um dos e-mails do meu aplicativo era constantemente marcado como spam. era html com um único link, que eu enviei como html no corpo com um tipo de conteúdo text / html.

minha solução mais bem-sucedida para esse problema foi compor o email para parecer que foi gerado por um cliente de email.

mudei o email para ser um documento mime alternativo / de várias partes e agora gero partes de texto / sem formatação e texto / html.

o email não é mais detectado como lixo eletrônico pelo Outlook.

glob
fonte
essa abordagem também é útil para os conscientes da segurança que não usam clientes de email com capacidade para HTML,
Jasen
13

O Yahoo usa um método chamado ID do remetente, que pode ser configurado no Assistente de instalação do SPF e inserido no seu DNS. Também um dos importantes para o Exchange, Hotmail, AOL, Yahoo e outros é ter um DNS reverso para o seu domínio. Aqueles nocautearão a maioria dos problemas. No entanto, você nunca pode impedir uma pessoa de bloquear intencionalmente suas regras personalizadas ou.

Nick Berardi
fonte
3
O Yahoo usa registros SPF e DomainKeys; SenderID é uma tecnologia diferente (e de muitas maneiras incompatível, insegura e mal projetada), que não deve ser usada.
21811 Dan Udey
11

Você precisa de uma entrada DNS reversa. Você não precisa enviar o mesmo conteúdo para o mesmo usuário duas vezes. Você precisa testá-lo com alguns clientes comuns de webmail e email. Pessoalmente, passei o meu por um assassino de spam recém-instalado, um assassino de spam treinado e várias contas hotmail, gmail e aol.

Mas você já viu aquele spam que parece não vincular ou anunciar nada? É um spammer tentando afetar seu filtro bayesiano. Se ele conseguir uma classificação alta e incluir algumas palavras que estariam em seus futuros e-mails, isso pode ser aprendido automaticamente como bom. Portanto, você não pode adivinhar qual filtro do usuário será definido no momento da sua correspondência.

Por fim, não classifiquei minha lista pelos domínios, mas a randomizei.

dlamblin
fonte
10

Descobri que usar o nome e o sobrenome reais dos destinatários no corpo é uma maneira segura de passar por um filtro de spam.

CVertex
fonte
8

No Reino Unido, também é uma boa prática incluir um endereço físico real para sua empresa e seu número registrado.

Dessa forma, é tudo aberto e honesto e é menos provável que você o marque manualmente como spam.

Keith
fonte
7

Eu adicionaria :

Forneça cancelamento de inscrição real ao clicar em "Cancelar inscrição". Vi boletins reais fornecendo um link fictício de cancelamento de inscrição que, ao clicar em um clique, "foi cancelado com sucesso", mas continuarei recebendo mais boletins.

Andrei Rînea
fonte
7

A coisa mais importante que você pode fazer é garantir que as pessoas para quem você está enviando e-mail provavelmente não apertem o botão "Spam" quando receberem seu e-mail. Portanto, siga as seguintes regras práticas:

  • Verifique se você tem permissão das pessoas para quem está enviando e-mail. Nunca envie um email para alguém que não o solicitou.

  • Identifique claramente quem você é no topo de cada mensagem e por que a pessoa está recebendo o email.

  • Pelo menos uma vez por mês, envie um e-mail de lembrete para as pessoas da sua lista (se você estiver executando uma lista), forçando-as a voltar à lista para continuar recebendo suas comunicações. Sim, isso significa que sua lista fica mais curta com o tempo, mas o lado positivo é que as pessoas da sua lista são "compradas" e terão menos probabilidade de sinalizar seu e-mail.

  • Mantenha seu conteúdo altamente relevante e útil.

  • Ofereça às pessoas uma maneira fácil de optar por não receber mais comunicações.

  • Use um serviço de envio de e-mail como o SendGrid que trabalhe duro para manter uma boa reputação de IP.

  • Evite usar links curtos - eles geralmente estão na lista negra.

Seguir estas regras práticas percorrerá um longo caminho.

Ken Simpson
fonte
6

Eu tive o mesmo problema no passado em muitos sites que fiz aqui no trabalho. O único método garantido de garantir que o usuário receba o email é aconselhá-lo a adicioná-lo à lista segura. Qualquer outro método será apenas algo que pode ajudá-lo e não é garantido.

Tanerax
fonte
6

Pode ser que as pessoas que se inscreverem no seu serviço estejam inserindo e-mails com erros de digitação que você não corrige. Por exemplo: chris @ gmial.com -ou- james @ hotnail.com .

E esses domínios são configurados para serem usados ​​como armadilhas de spam, que sinalizam automaticamente o IP e / ou o domínio do servidor de email e prejudicam sua reputação.

Para evitar isso, verifique novamente o endereço de e-mail inserido na assinatura do seu produto. Além disso, envie um email de confirmação para realmente garantir que esse endereço de email seja 100% validado por um ser humano que está inserindo o email de confirmação, antes de enviar a chave do produto ou aceitar sua assinatura. O e-mail de verificação deve exigir que o destinatário clique em um link ou responda para realmente confirmar que o proprietário da caixa de correio é a pessoa que se inscreveu.

Miki Berkovich
fonte
1
Este. Nada na resposta atualmente aceita faz alguma diferença se você não praticar a higiene básica da assinatura em primeiro lugar.
Tripleee
4

Parece que você está dependendo de alguns comentários para determinar o que está travando no lado receptor. Você deve verificar o e-mail de saída quanto a "spam" óbvio.

Compre qualquer sistema decente de controle de spam e envie seus e-mails através dele. Se você enviar um volume decente de e-mails, deverá fazê-lo de qualquer maneira, devido ao risco de enviar vírus de saída, especialmente se você tiver usuários de janelas da área de trabalho.

O Proofpoint tinha spam + antivírus + alguns serviços de reputação em uma única implantação, por exemplo. (Eu costumava trabalhar lá, por isso sei disso de cabeça. Tenho certeza de que outros fornecedores neste espaço têm recursos semelhantes.) Mas você entendeu a idéia. Se você enviar seu email por meio de uma configuração básica de controle comercial de spam, e ele não for aprovado, ele não deverá sair da sua rede.

Além disso, existem algumas empresas que podem ajudá-lo a aumentar as taxas de entrega de e-mails de saída sem spam, como o Habeas.

benc
fonte
3

O Google tem uma ferramenta e diretrizes para isso. Você pode encontrá-los em: https://postmaster.google.com/ Registre e verifique seu nome de domínio e o Google fornece uma pontuação individual desse endereço IP e domínio.

Nas diretrizes dos remetentes em massa :

A autenticação garante que suas mensagens possam ser classificadas corretamente. Os e-mails que não possuem autenticação provavelmente serão rejeitados ou colocados na pasta de spam, dada a alta probabilidade de serem mensagens falsificadas usadas para esquemas de phishing. Além disso, e-mails não autenticados com anexos podem ser totalmente rejeitados, por razões de segurança.

Para garantir que o Gmail possa identificá-lo:

  • Use um endereço IP consistente para enviar emails em massa.
  • Mantenha registros DNS reversos válidos para os endereços IP dos quais você envia e-mails, apontando para o seu domínio.
  • Use o mesmo endereço no cabeçalho 'De:' em todos os emails em massa que você enviar. Também recomendamos o seguinte:

  • Assine mensagens com DKIM. Não autenticamos mensagens assinadas com chaves usando menos de 1024 bits.

  • Publique um registro SPF.
  • Publique uma política DMARC.
Kurt Van den Branden
fonte
1

Eu sempre uso: https://www.mail-tester.com/

Isso me fornece um feedback sobre a parte técnica do envio de um email. Como os registros SPF, DKIM, Spamassassin score e assim por diante. Mesmo sabendo o que é necessário, eu cometo erros continuamente e o mail-tester.com facilita a descoberta do que pode estar errado.

Filip
fonte
0

Para permitir que o DMARC verifique se o SPF é aprovado e também esteja alinhado ao usar o sendmail, certifique-se de definir o endereço ( -fou -rparâmetro) do remetente do envelope como algo que corresponda ao domínio no From:endereço do cabeçalho.

Com o PHP:

Usar a função interna do PHP mail()sem definir o quinto parâmetro, fará com que as verificações do DMARC SPF fiquem desalinhadas se não forem feitas corretamente. Por padrão, o sendmail enviará o email com o usuário do servidor da web como o cabeçalho RFC5321 .MailFrom / Return Path.

Por exemplo, digamos que você esteja hospedando seu site domain.comno host.comservidor da web. Se você não definir o parâmetro de parâmetros adicionais:

mail($to,$subject,$message,$headers); // Wrong way

O destinatário do email receberá um email com os seguintes cabeçalhos:

Return-Path: <[email protected]>
From: <[email protected]>

Mesmo que isso passe nas verificações do SPF, ele ficará desalinhado (já que domain.com e host.com não coincidem), o que significa que a verificação do DMARC SPF falhará como desalinhada.

Em vez disso, você deve passar o endereço do remetente do envelope para o sendmail incluindo o quinto parâmetro na mail()função PHP , por exemplo:

mail($to,$subject,$message,$headers, '-r [email protected]'); // Right way

Nesse caso, o destinatário do email receberá um email com os seguintes cabeçalhos:

Return-Path: <[email protected]>
From: <[email protected]>

Como esses dois cabeçalhos contêm endereços domain.com, o SPF será aprovado e também será alinhado, o que significa que o DMARC também será aprovado na verificação do SPF.

Mike
fonte