Por que as mensagens de e-mail enviadas do meu aplicativo PHP estão sendo tratadas como spam?

4

Eu tenho essa coisa engraçada. Quando envio um email, para usuários do yahoo, gmail ou hotmail. Se eu incluir um link, ele será tratado como spam. Mas se eu removi o link, ele se tornará "caixa de entrada" e não spam. Estranho hein ??

Existe alguma coisa a ver com o meu servidor de e-mail? Como evitar que meu email seja tratado como spam? Eu preciso de link no meu conteúdo de e-mail:)

código php:

// Send Email to the user
$headers =  'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";

// Email Variables

$toUser  = '[email protected]'; // recipient
$subject = "Subject HERE!!"; // subject
$body    = '<div style="font-family:Arial; color:#333;">
                Some content here ...
        <a href="www.google.com" target="_blank"> Link here</a> 
        </div>';

if(mail($toUser,$subject,$body,$headers)){
    echo "Email SENT" . '<br>';
} else {
    echo "Email cannot sent" . '<br>';
};
    
por Dave Cheney 23.06.2009 / 08:51

5 respostas

4
Por suposto, os servidores de e-mail calculam uma pontuação de spam para cada uma das suas mensagens com base na análise de texto e em uma série de outras coisas sobre as quais não contam a ninguém - +3 por não ter palavras no título, +2 para links incorporados, etc etc. Provavelmente, a pontuação normal de um de seus e-mails gerados (link free) é bastante alta, mas ainda baixa o suficiente para o e-mail passar.

Algumas soluções anti-spam são boas o suficiente para manter a pontuação de spam nos cabeçalhos das mensagens - procure algo como "X-Spam-Score" lá. Se você puder descobrir qual foi a pontuação de uma mensagem, isso vai lhe dizer o quanto foi perto de ser sinalizado como spam (o limite de spam geralmente é de cerca de 12, mas todos eles têm seus próprios sistemas). . Eu suspeito que a pontuação de uma mensagem limpa será bastante alta, e adicionar o link é apenas a última gota.

A outra coisa a observar é que, se você estiver gerando o e-mail a partir de um script, certifique-se de que ele esteja preenchendo todos os cabeçalhos apropriados, pois os que faltam aumentarão sua pontuação de spam. Os logs da conversa SMTP entre o servidor que envia o email e o que estiver sendo transmitido também seriam úteis.

    
por 23.06.2009 / 10:41
4

Você precisa ter certeza de que seu servidor de e-mail (provavelmente a mesma máquina com a qual seu código php está sendo executado) esteja corretamente configurado para enviar e-mails legitimamente. Você precisa ter certeza de que algumas coisas estão corretas para evitar que qualquer email seja retransmitido da máquina sendo marcada como spam.

Primeiramente, seu servidor de e-mail DEVE dizer HELO com seu nome de host canônico, que é o mesmo valor que o comando hostname retorna quando executado na linha de comando. Em postfix , esse é o valor da variável myhostname em /etc/postfix/main.cf .

Em segundo lugar, os ponteiros de avanço e reverso para o seu servidor no DNS devem corresponder e devem corresponder ao valor do nome do host acima. Por exemplo

[dave@odessa ~]$ host odessa.cheney.net
odessa.cheney.net has address 64.85.168.249
[dave@odessa ~]$ host 64.85.168.249
249.168.85.64.in-addr.arpa domain name pointer odessa.cheney.net.

Em terceiro lugar, verifique se o seu servidor de e-mail não está agindo como um retransmissor aberto. Se o seu servidor de e-mail estiver configurado para retransmitir e-mails de outros hosts, você deve ter muito cuidado para garantir que esses hosts não sejam retransmissores abertos ou estejam protegidos de aceitar mensagens de hosts não autenticados. Há muitos sites por aí que farão uma verifique para você, link por exemplo.

Em quarto lugar, olhe para o conteúdo da sua mensagem. A partir da amostra que você postou acima, parece que você está enviando um pequeno pedaço de HTML, o que provavelmente será um conjunto de alarmes com filtros de spam (dê uma olhada na composição do seu spam médio). Você deve sempre usar uma biblioteca de e-mail para compor seu e-mail e, se enviar um e-mail HTML, inclua uma variante text/plain .

Por fim, com os sites grandes, alguns de nossos e-mails serão marcados como spam, é apenas a lei das médias. É sua responsabilidade garantir que você esteja em conformidade com os regulamentos apropriados para enviar e-mails em massa ou automáticos, como CAN-SPAM . A parte mais importante disso é uma maneira direta de as pessoas se desinscreverem de suas listas de discussão. Se você dificultar as coisas para as pessoas, é mais provável que os usuários acessem o grande botão spam em seu cliente de e-mail, que será enviado ao host de e-mail e funcionará em seu servidor.

    
por 23.06.2009 / 11:49
1

Todo site de e-mail aplicará suas próprias regras para detecção de spam. Você não encontrará um método perfeito para não ser classificado como spam. À primeira vista, o! no assunto e o conteúdo inteiramente em HTML são bons indicadores de spam ...

Envie um e-mail para [email protected] e você receberá de volta um relatório automático com uma análise de como ele é e qual é sua especificidade. Pode te dar algumas ideias.

    
por 23.06.2009 / 11:34
0

Há pouco que você pode fazer do código. Embora você possa usar algo como DKIM, não há garantias de que os destinatários o usem. Pessoalmente, eu me concentro em fazer com que o seu e-mail pareça menos com spam "fogo-e-esqueça" e mais com algo "oficial" que o usuário realmente pediu. Você poderia editar sua postagem para incluir um e-mail real que seu sistema enviou?

    
por 23.06.2009 / 09:27
0

Cerca de 18 meses atrás, tivemos problemas para enviar nossos e-mails para os endereços do Yahoo porque o link continha um domínio recém-registrado.

Identificamos isso verificando os e-mails devolvidos. O próprio Yahoo informou que "seu e-mail foi atrasado", mas alguns outros servidores de correio deram uma pista em sua mensagem de erro por recusarem a entrega. A alteração do domínio de volta para um domínio mais antigo e mais consolidado resolveu o problema.

Considere também as palavras no link (por exemplo, dizer algo como DOWNLOAD FREE SOFTWARE NOW em vez de Download do software versão 1.0 ) e o nome do domínio no próprio link.

    
por 23.06.2009 / 12:36