Comment vous assurer que les e-mails que vous envoyez par programmation ne sont pas automatiquement marqués comme spam?


435

C'est une question délicate et je me suis toujours appuyé sur des techniques, telles que les e-mails basés sur les autorisations (c'est-à-dire l'envoi uniquement à des personnes auxquelles vous êtes autorisé à envoyer) et ne pas utiliser de terminologie de spam flagrant .

Dernièrement, certains des e-mails que j'envoie par programme ont commencé à être mélangés automatiquement dans le dossier spam des gens et je me demande ce que je peux faire à ce sujet.

Ceci en dépit du fait que ces e-mails ne sont pas ceux que les humains marqueraient comme spam, en particulier, ce sont des e-mails contenant des clés de licence pour lesquelles les gens ont payé beaucoup d'argent, donc je ne pense pas qu'ils vont les considérer comme du spam

Je pense que c'est un grand sujet dans lequel je suis essentiellement un niais ignorant.

Réponses:


338

Utilisez des méthodes d'authentification des e-mails, telles que SPF et DKIM, pour prouver que vos e-mails et votre nom de domaine vont de pair et pour empêcher l'usurpation de votre nom de domaine. Le site Web SPF comprend un assistant pour générer les informations DNS pour votre site.

Vérifiez votre DNS inversé pour vous assurer que l'adresse IP de votre serveur de messagerie pointe vers le nom de domaine que vous utilisez pour envoyer du courrier.

Assurez-vous que l'adresse IP que vous utilisez n'est pas sur une liste noire

Assurez-vous que l'adresse de réponse est une adresse existante valide.

Utilisez le nom complet et réel du destinataire dans le champ À, pas seulement l'adresse e-mail (par exemple "John Smith" <john@blacksmiths-international.com>).

Surveillez vos comptes d'abus, tels que abuse@votredomaine.com et postmaster@votredomaine.com. Cela signifie - assurez-vous que ces comptes existent, lisez ce qui leur est envoyé et donnez suite aux plaintes.

Enfin, le rendre vraiment facile de se désabonner. Sinon, vos utilisateurs se désinscrireont en appuyant sur le bouton spam , ce qui affectera votre réputation.

Cela dit, faire en sorte que Hotmail accepte vos e-mails reste un art noir.


Pourriez-vous élaborer sur les comptes d'abus? Je ne suis pas sûr de ce que tu veux dire
marcgg

26
brandonchecketts.com/emailtest.php vous pouvez tester si la configuration de votre serveur de messagerie est conforme aux DomainKeys, DKIM, SPF et autres méthodes anti-spam.
Jonas

3
faites également un algorithme de détection des e-mails rebondis pour vérifier les mauvaises adresses e-mail (par exemple, si un e-mail rebondit 3 fois, arrêtez d'envoyer des e-mails à cette adresse)
clyfe

11
+1 pour "Cela dit, faire en sorte que Hotmail accepte vos e-mails reste un art noir." Hotmail fait peu ou pas de distinction entre spam et non-spam. Soit tout est dans la boîte de réception ou dans le bac de spam (en fonction de vos paramètres).
Halil Özgür

2
Brandon Checketts a déplacé son outil de conformité du serveur de messagerie vers: dkimvalidator.com
Dana Wheeler

30

Ouvrez un compte sur autant de fournisseurs de messagerie principaux que possible (gmail / yahoo / hotmail / aol / etc). Si vous apportez des modifications à vos e-mails, que ce soit une reformulation majeure, des modifications du code qui envoie les e-mails, des modifications à vos serveurs de messagerie, etc., assurez-vous d'envoyer des messages de test à tous vos comptes et vérifiez qu'ils ne sont pas marqués comme spam.


2
Certains systèmes de spam prennent en compte les habitudes de lecture individuelles. (Les e-mails de cet expéditeur sont-ils lus ou sont-ils supprimés sans lecture? Etc.) Donc, cela vous aidera certainement à trouver quand ils sont signalés (vrai négatif), mais cette étape ne prouvera pas qu'ils ne le seront pas pour les autres utilisateurs sur le même système (faux positif).
Jon Adams

26

Vous pouvez dire à vos utilisateurs d'ajouter votre adresse d'expéditeur à leurs contacts lorsqu'ils terminent leur commande, ce qui, s'ils le font, sera très utile.

Sinon, j'essaierais d'obtenir un journal de certains de vos utilisateurs. Parfois, ils ont des détails sur la raison pour laquelle il a été signalé comme spam dans les en-têtes du message, que vous pouvez utiliser pour modifier le texte.

Autres choses que vous pouvez essayer:

  • Mettez le nom ou l'adresse de votre site dans le sujet
  • Gardez tous les liens dans le message pointant vers votre domaine (et non email.com)
  • Mettez une adresse ou d'autres coordonnées dans l'e-mail

24

Quelques points d'une réponse précédente :

  • Plus important: l'adresse de l'expéditeur ("De") appartient-elle à un domaine qui s'exécute sur le serveur à partir duquel vous envoyez l'e-mail? Sinon, faites-le. N'utilisez jamais d'adresses d'expéditeur comme xxx@gmail.com. Utilisateur reply-tosi vous avez besoin de réponses pour arriver à une adresse différente.

  • Votre serveur est-il sur une liste noire (par exemple, vérifiez l'adresse IP sur spamhaus.org)? C'est une possibilité lorsque vous êtes sur l'hébergement mutualisé lorsque les voisins se comportent mal.

  • Les mails sont-ils filtrés par un filtre anti-spam? Ouvrez un compte avec un freemailer qui a un dossier spam et découvrez-le. Essayez également d'envoyer du courrier à une adresse sans aucun filtrage anti-spam.

  • Avez-vous éventuellement besoin du cinquième paramètre "-f" de mail () pour ajouter une adresse d'expéditeur? (Voir la commande mail () dans le manuel PHP)

  • Si vous avez accès aux fichiers journaux, vérifiez-les bien sûr.

  • Vérifiez-vous l'adresse "de:" pour les éventuels e-mails de rebond ("Renvoyé à l'expéditeur")? Vous pouvez également configurer une adresse "erreurs vers" distincte.

22

Confirmez que vous avez la bonne adresse e-mail avant d'envoyer des e-mails. Si quelqu'un donne la mauvaise adresse e-mail lors de l'inscription, battez-le par-dessus la tête dès que possible.

Incluez toujours des informations claires sur la procédure de désabonnement dans CHAQUE e-mail. Ne pas obliger l'utilisateur à se connecter pour se désinscrire, il doit s'agir d'une URL unique pour se désinscrire en 1 clic.

Cela empêchera les gens de marquer vos e-mails comme spam car la "désinscription" est trop difficile.


11
+1 pour une URL unique en cas de désabonnement en 1 clic. Je déteste me connecter pour me désinscrire. Je les ai marqués comme SPAM!
Shyju

16

En plus de toutes les autres réponses, si vous envoyez des e-mails HTML contenant des URL comme texte de liaison, assurez-vous que l'URL correspond au texte de liaison. Je sais que Thunderbird les signale automatiquement comme étant une arnaque sinon.

La mauvaise direction:

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

Le droit chemin:

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

Ou utilisez un texte de liaison sans rapport avec une URL:

<a href="http://www.yourdomain.org/">Click here to go to your account</a>

1
Bonjour Mike, j'ai deux domaines, c'est-à-dire domain1.com et domain2.com. Votre code fonctionne pour domaine1.com mais pas pour domaine2.com. Je ne sais pas pourquoi? Je n'ai pas changé d'avis. stackoverflow.com/questions/42200904/…
Naren Verma

1
@NarendraVerma Il ne semble pas que ma réponse s'applique à vous dans ce cas. Je recommande de regarder les autres réponses ici pour voir si quelque chose d'autre vous convient. En fin de compte, il appartient au fournisseur de messagerie de décider ce qu'il considère comme du spam et ce qu'il laisse passer, et chacun a plusieurs facteurs différents qu'il considère. Gmail vous donne en fait une brève description des raisons pour lesquelles les messages sont marqués comme spam si vous cliquez sur le message de spam.
Mike

1
Merci d'avoir répondu Mr.Mike, En fait, j'ai appliqué votre réponse dans domain1 et cela fonctionne. J'utilise PHpMailer et j'ai ajouté comme $ email_body = "<a href='domaine1.com'> Voir </ a >". Cela fonctionne parfaitement.
Naren Verma

1
Je ne sais pas pourquoi le deuxième domaine2 ne fonctionne pas. Bien sûr, je contacterai l'équipe Gmail. Toute autre suggestion dans ce code?
Naren Verma

@NarendraVerma Il n'y a rien de mal avec votre code.
Mike

15

Vous pouvez envisager un service de messagerie tiers qui gère les problèmes de livraison:

  • Cible exacte
  • Réponse verticale
  • Contact constant
  • Moniteur de campagne
  • Emma
  • Chemin de retour
  • IntelliContact
  • SilverPop

15

La livraison d'e-mails peut parfois être comme de la magie noire. Le DNS inverse est vraiment important.

J'ai trouvé qu'il était très utile de suivre attentivement les rapports de non-remise. Je dirige tous mes rapports de non-remise vers une seule adresse et j'ai un service Windows qui les analyse (Google ListNanny). Je mets autant d'informations que possible du rapport de non-remise dans une base de données, puis j'exécute des rapports dessus pour voir si j'ai soudainement commencé à être bloqué par un certain domaine. De plus, vous devez éviter d'envoyer des e-mails à des adresses précédemment marquées comme NDR, car c'est généralement une bonne indication de spam.

Si vous devez envoyer un tas d'e-mails du service client à la fois, il est préférable de mettre un délai entre chacun, car si vous envoyez trop d'e-mails presque identiques à un domaine à la fois, vous êtes sûr de finir sur leur liste noire.

Il est parfois impossible de livrer certains domaines. Comcast.net est le pire.

Assurez-vous que vos adresses IP ne sont pas répertoriées sur des sites tels que http://www.mxtoolbox.com/blacklists.aspx .


2
Qu'est-ce qu'un rapport de non-remise? Pouvez-vous s'il vous plaît développer?
Pykih

2
Rapport de non-remise, alias message de rebond .
tripleee

14

Je déteste vous le dire, mais moi et d'autres utilisons peut-être les valeurs par défaut de la liste blanche pour contrôler notre filtrage du spam.

Cela signifie que tous les e-mails provenant d'une source inconnue sont automatiquement du spam et détournés dans un dossier de spam. (Je ne laisse pas mon service de messagerie supprimer le spam, car je veux toujours vérifier les arrivées pour les faux positifs, ce qui est assez facile à faire par une analyse rapide du dossier.)

J'ai même des e-mails de ma part dans le compartiment spam, car (1) je ne m'envoie généralement pas d'e-mails et (2) il y a des spammeurs qui truquent mon adresse de retour dans le spam qui m'a été envoyé.

Donc, pour sortir de la désignation de spam, je dois considérer que votre courrier peut être légitime (provenant des informations sur l'expéditeur et le sujet) et l'ouvrir d'abord en texte clair (ma valeur par défaut pour tous les courriers entrants, spam ou non) pour voir s'il est légitime . Mon dossier de spam n'utilisera aucun lien dans les e-mails, je suis donc protégé contre les liens d'image délicats et autres comportements répréhensibles.

Si je veux que les futurs arrivants de la même source se rendent dans ma boîte de réception et ne soient pas détournés pour examen du spam, je le préciserai à mon client de messagerie. Pour les organisations qui utilisent des redirecteurs de messages en masse et des adresses d'expéditeurs uniques par envoi, c'est dommage. Ils n'obtiennent jamais mon approbation et apparaissent toujours dans mon dossier de spam, et si je suis occupé, je ne les regarderai jamais.

Enfin, si un e-mail n'est pas lisible en texte brut, même lorsqu'il est envoyé au format HTML, je suis susceptible de le supprimer à moins que ce soit quelque chose que je connaisse qui m'intéresse en raison de la source et des expériences précieuses précédentes.

Comme vous pouvez le voir, il est finalement sous le contrôle des utilisateurs et aucun acte automatisé ne convaincra un tel système que votre courrier est légitime de sa seule structure. Dans ce cas, vous devez jouer gentiment, ne rien faire de similaire à l'hameçonnage et permettre aux utilisateurs désireux de faire confiance à votre courrier de vous ajouter à leur liste blanche.


13

l'un des e-mails de mon application était constamment marqué comme spam. c'était html avec un seul lien, que j'ai envoyé en html dans le corps avec un type de contenu texte / html.

ma résolution la plus réussie de ce problème a été de rédiger l'e-mail afin qu'il semble qu'il ait été généré par un client de messagerie.

j'ai changé l'e-mail pour être un document mime multipart / alternatif et je génère maintenant des parties texte / simple et texte / html.

l'e-mail n'est plus détecté comme indésirable par Outlook.


cette approche est également utile pour les personnes soucieuses de la sécurité qui n'utilisent pas de clients de messagerie compatibles HTML,
Jasen

13

Yahoo utilise une méthode appelée Sender ID, qui peut être configurée à assistant de configuration SPF et saisie dans votre DNS. L'un des plus importants pour Exchange, Hotmail, AOL, Yahoo et autres est également d'avoir un DNS inversé pour votre domaine. Cela résoudra la plupart des problèmes. Cependant, vous ne pouvez jamais empêcher une personne de bloquer intentionnellement vos règles ou vos règles personnalisées.


3
Yahoo utilise les enregistrements SPF et DomainKeys; SenderID est une technologie différente (et à bien des égards, incompatible, non sécurisée et mal conçue), qui ne doit pas être utilisée.
Dan Udey

11

Vous avez besoin d'une entrée DNS inversée. Vous ne devez pas envoyer deux fois le même contenu au même utilisateur. Vous devez le tester avec certains clients de messagerie et de messagerie Web courants. Personnellement, j'ai dirigé le mien à travers un assassin de spam fraîchement installé, un assassin de spam formé et plusieurs comptes hotmail, gmail et aol.

Mais avez-vous vu ce spam qui ne semble pas lié à ou annoncer quoi que ce soit? C'est un spammeur qui essaie d'affecter votre filtre bayésien. S'il peut obtenir une note élevée et inclure des mots qui figureraient dans ses prochains courriels, cela pourrait automatiquement être appris comme bon. Vous ne pouvez donc pas vraiment deviner quel filtre d'un utilisateur va être défini au moment de votre envoi.

Enfin, je n'ai pas trié ma liste par domaine, mais je l'ai randomisée.


10

J'ai trouvé que l'utilisation du nom et du prénom réels des destinataires dans le corps est un moyen sûr de passer à travers un filtre anti-spam.


8

Au Royaume-Uni, il est également recommandé d'inclure une véritable adresse physique pour votre entreprise et son numéro d'enregistrement.

De cette façon, tout est ouvert et honnête et ils sont moins susceptibles de le marquer manuellement comme spam.


7

J'ajouterais:

Fournissez une véritable désinscription en cliquant sur "Se désinscrire". J'ai vu de véritables newsletters fournissant un lien de désabonnement factice qui, au clic, indique "a bien été désinscrit", mais je recevrai toujours d'autres newsletters.


7

La chose la plus importante que vous puissiez faire est de vous assurer que les personnes à qui vous envoyez des e-mails ne risquent pas de cliquer sur le bouton "Spam" lorsqu'elles recevront votre e-mail. Alors, respectez les règles de base suivantes:

  • Assurez-vous d'avoir l'autorisation des personnes à qui vous envoyez un e-mail. N'envoyez jamais d'e-mail à quelqu'un qui ne vous l'a pas demandé.

  • Identifiez clairement qui vous êtes en haut de chaque message et pourquoi la personne reçoit l'e-mail.

  • Au moins une fois par mois, envoyez un e-mail de rappel aux personnes de votre liste (si vous exécutez une liste), les forçant à se réinscrire à la liste afin de continuer à recevoir des communications de votre part. Oui, cela signifie que votre liste se raccourcit au fil du temps, mais l'avantage est que les personnes sur votre liste sont «achetées» et seront moins susceptibles de signaler votre e-mail.

  • Gardez votre contenu très pertinent et utile.

  • Donnez aux gens un moyen facile de se retirer de toute communication ultérieure.

  • Utilisez un service d'envoi d'email comme SendGrid qui travaille dur pour maintenir une bonne réputation IP.

  • Évitez d'utiliser des liens courts - ceux-ci sont souvent sur liste noire.

Suivre ces règles de base ira un long chemin.


6

J'ai eu le même problème dans le passé sur de nombreux sites que j'ai fait ici au travail. La seule méthode garantie pour s'assurer que l'utilisateur reçoit l'e-mail est de conseiller à l'utilisateur de vous ajouter à sa liste sécurisée. Toute autre méthode ne sera vraiment que quelque chose qui peut aider et n'est pas garantie.


6

Il se pourrait très bien que les personnes qui s'inscrivent à votre service entrent des e-mails avec des fautes de frappe que vous ne corrigez pas. Par exemple: chris @ gmial.com -ou- james @ hotnail.com .

Et ces domaines sont configurés pour être utilisés comme spamtraps ce qui automatiquement l'IP et / ou le domaine de votre serveur de messagerie et nuira à sa réputation.

Pour éviter cela, effectuez une double vérification pour l'adresse e-mail saisie lors de votre abonnement au produit. En outre, envoyez un e-mail de confirmation pour vous assurer que cette adresse e-mail est validée à 100% par un être humain qui entre dans l'e-mail de confirmation, avant de lui envoyer la clé de produit ou d'accepter son abonnement. L'e-mail de vérification doit obliger le destinataire à cliquer sur un lien ou à répondre afin de vraiment confirmer que le propriétaire de la boîte aux lettres est la personne qui s'est inscrite.


1
Cette. Rien dans la réponse actuellement acceptée ne fait de différence si vous ne pratiquez pas l'hygiène de base de l'abonnement en premier lieu.
tripleee

4

Il semble que vous dépendiez de certains commentaires pour déterminer ce qui se bloque du côté de la réception. Vous devriez vérifier vous-même le courrier sortant pour un "spaminess" évident.

Achetez n'importe quel système de contrôle du spam décent et envoyez-y votre courrier sortant. Si vous envoyez un volume de courrier décent, vous devriez le faire de toute façon, en raison du risque d'envoi de virus sortants, surtout si vous avez des utilisateurs de Windows de bureau.

Par exemple, Proofpoint avait spam + anti-virus + certains services de réputation dans un seul déploiement. (J'avais l'habitude de travailler là-bas, donc je le sais par cœur. Je suis sûr que d'autres fournisseurs dans cet espace ont des fonctionnalités similaires.) Mais vous avez l'idée. Si vous envoyez votre courrier via une configuration de base de contrôle du spam commercial, et qu'il ne passe pas, il ne devrait pas sortir de votre réseau.

En outre, certaines entreprises peuvent vous aider à augmenter les taux de livraison des e-mails sortants non spam, comme Habeas.


3

Google a un outil et des directives pour cela. Vous pouvez les trouver sur: https://postmaster.google.com/ Enregistrez et vérifiez votre nom de domaine et Google fournit une notation individuelle de cette adresse IP et de ce domaine.

D'après les directives des expéditeurs groupés :

L'authentification garantit que vos messages peuvent être correctement classés. Les e-mails qui ne sont pas authentifiés sont susceptibles d'être rejetés ou placés dans le dossier spam, compte tenu de la forte probabilité qu'il s'agisse de faux messages utilisés pour des escroqueries par phishing. De plus, les e-mails non authentifiés avec des pièces jointes peuvent être carrément rejetés, pour des raisons de sécurité.

Pour vous assurer que Gmail peut vous identifier:

  • Utilisez une adresse IP cohérente pour envoyer du courrier en vrac.
  • Conservez des enregistrements DNS inverses valides pour la ou les adresses IP à partir desquelles vous envoyez des messages, pointant vers votre domaine.
  • Utilisez la même adresse dans l'en-tête "De:" sur chaque courrier en vrac que vous envoyez. Nous recommandons également ce qui suit:

  • Signez des messages avec DKIM. Nous n'authentifions pas les messages signés avec des clés utilisant moins de 1024 bits.

  • Publiez un enregistrement SPF.
  • Publiez une stratégie DMARC.

1

J'utilise toujours: https://www.mail-tester.com/

Cela me donne un retour sur la partie technique de l'envoi d'un e-mail. Comme les enregistrements SPF, DKIM, le score Spamassassin, etc. Même si je sais ce qui est requis, je fais continuellement des erreurs et mail-tester.com permet de comprendre facilement ce qui pourrait mal se passer.


1

Tout d'abord, vous devez vous assurer que les mécanismes d'authentification des e-mails requis comme SPF et DKIM sont en place. Ces deux sont des moyens importants de prouver que vous étiez le véritable expéditeur d'un e-mail et qu'il n'est pas vraiment usurpé. Cela réduit les chances que les e-mails soient filtrés comme spam.

La deuxième chose est que vous pouvez vérifier la sortie DNS inverse de votre nom de domaine par rapport à différents DNSBL. Utilisez la commande simple ci-dessous sur le terminal:

  **dig a +short (domain-name).(blacklist-domain-name)**

  ie.  dig a +short example.com.dsn.rfc-clueless.org
  > 127.0.0.2

Dans les exemples ci-dessus, cela signifie que votre domaine "example.com" est répertorié dans la liste noire mais en raison de la conformité des paramètres de domaine (domaine de liste rfc-clueless.org qui présente un problème de conformité)

note: je préfère l' outil multivalley et pepipost pour vérifier les listes de domaine.

L'adresse de provenance / réponse à l'id doit être correcte, utilisez toujours le bouton de désabonnement visible dans votre corps de messagerie (cela aidera vos utilisateurs à se déconnecter de votre liste de diffusion sans tuer la réputation de votre domaine)


0

Pour permettre aux vérifications DMARC de SPF de passer et d'être également alignées lors de l'utilisation de sendmail, assurez-vous que vous définissez l'adresse ( -fou le -rparamètre) de l'expéditeur de l'enveloppe sur quelque chose qui correspond au domaine dans l' From:adresse d' en- tête.

Avec PHP:

L'utilisation de la fonction intégrée de PHP mail()sans définir le 5ème paramètre entraînera le désalignement des contrôles DMARC SPF s'il n'est pas effectué correctement. Par défaut, sendmail enverra l'e-mail avec l'utilisateur du serveur Web comme en- tête RFC5321 .MailFrom / Return Path.

Par exemple, supposons que vous hébergiez votre site Web domain.comsur le host.comserveur Web. Si vous ne définissez pas le paramètre de paramètres supplémentaires:

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

Le destinataire de l'e-mail recevra un e-mail avec les en-têtes de courrier suivants:

Return-Path: <your-website-user@server.host.com>
From: <your-website-user@domain.com>

Même si cela passe les vérifications SPF, il ne sera pas aligné (puisque domain.com et host.com ne correspondent pas), ce qui signifie que la vérification DMARC SPF échouera comme non alignée.

Au lieu de cela, vous devez transmettre l'adresse de l'expéditeur de l'enveloppe à sendmail en incluant le 5ème paramètre dans la mail()fonction PHP , par exemple:

mail($to,$subject,$message,$headers, '-r bounce_email@domain.com'); // Right way

Dans ce cas, le destinataire de l'e-mail recevra un e-mail avec les en-têtes de courrier suivants:

Return-Path: <bounce_email@domain.com>
From: <your-website-user@domain.com>

Étant donné que ces deux en-têtes contiennent des adresses de domain.com, SPF passera et sera également aligné, ce qui signifie que DMARC passera également la vérification SPF.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.