Comment envoyer des emails et éviter qu'ils ne soient classés comme spam?


83

C’est une question canonique sur la façon de traiter les courriers électroniques envoyés par votre serveur comme étant du spam. Pour plus d'informations, vous pouvez trouver ces questions similaires utiles:

Parfois, je veux envoyer des newsletters à mes clients. Le problème, c’est que certains courriels sont pris pour des spams. Principalement par Outlook chez le client (même dans mon propre Outlook 2007).

Maintenant, je veux savoir ce qui devrait être fait pour créer de "bons" emails. Je connais la recherche inversée, etc., mais (par exemple), qu’en est-il du lien de désabonnement avec un identifiant unique? Cela augmente-t-il le taux de spam?


Une liste de contrôle étape par étape ainsi que des instructions de dépannage peuvent être trouvées dans une bonne réponse à une question similaire sur superuser.com .
MattBianco

Réponses:


83

Assurez-vous que vos courriels ne ressemblent pas à des courriers indésirables: n'insérez pas uniquement une image de grande taille; vérifiez que le jeu de caractères est défini correctement; n'insérez pas de liens «adresse IP uniquement». Ecrivez votre communication comme vous écrivez un email normal. Facilitez-vous la désinscription ou la désinscription. Sinon, vos utilisateurs se désabonner en appuyant sur le bouton «spam», ce qui affectera votre réputation.

Sur le plan technique: si vous pouvez choisir votre serveur SMTP, assurez-vous qu'il s'agit d'un serveur SMTP «propre». Les adresses IP des serveurs de courrier indésirable SMTP sont souvent inscrites sur une liste noire par d'autres fournisseurs. Si vous ne connaissez pas vos serveurs SMTP à l'avance, il est recommandé de fournir des options de configuration dans votre application pour contrôler la taille et le délai des lots. Certains serveurs de messagerie n'acceptent pas les lots d'envoi volumineux ni l'activité continue.

Utilisez des méthodes d'authentification de messagerie, telles que SPF , et des clés de domaine pour prouver que vos courriels et votre nom de domaine vont de pair. Le bon effet secondaire est que vous aidez à empêcher que votre domaine de messagerie ne soit usurpé. Vérifiez également votre DNS inverse pour vous assurer que l'adresse IP de votre serveur de messagerie pointe vers le nom de domaine que vous utilisez pour l'envoi de courrier.

Assurez-vous que l'adresse de réponse de vos courriels correspond à une adresse existante valide. Utilisez le nom complet et réel du destinataire dans le champ À, pas seulement l'adresse électronique (par exemple "John Doe" <john.doe@example.com>) et surveillez vos comptes d'abus, tels que abuse@example.com et postmaster@example.com .


Et utilisez des versions multipart / alternatives de votre courrier électronique HTML contenant uniquement du texte. Cela signifie que l'analyseur de spam disposera de plus d'informations utiles pour le classer.
Matt

22

Désabonnez automatiquement les destinataires de votre message dont les adresses de messagerie sont renvoyées, créez des boucles de réponse aux plaintes avec les principaux fournisseurs de messagerie et désabonnez automatiquement les destinataires qui signalent votre message comme spam / courrier indésirable. Cela contribuera grandement à améliorer votre réputation et votre délivrabilité.


4
C'est très intéressant. Je ne savais rien de ces boucles de rétroaction. Est-ce que tous les fournisseurs offrent un tel programme?
kcode

1
Pas tous les fournisseurs, non. Mais la plupart des principaux, y compris Yahoo et AOL et d'autres. Toutes les boucles de retour de plainte dont je suis au courant nécessitent que les messages soient envoyés à partir d'un domaine authentifié par DKIM ou DomainKeys. Je crois que certains exigent également un FPS, mais moins fréquemment.

15

Cette question mentionne que les bases sont en place, mais comme nous en appelons d'autres comme une question canonique, je veux simplement m'assurer que nous couvrons nos bases.

Ces minimums sont essentiellement requis de nos jours:

  1. Assurez-vous que le DNS direct et inverse est correctement configuré. Un serveur de messagerie doit s'identifier dans un échange HELO / EHLO, ce nom doit rechercher l'adresse IP utilisée par le serveur. De même, la recherche inversée de cette adresse IP devrait renvoyer le nom.

  2. Assurez-vous que votre serveur envoie effectivement le nom d’hôte dans cette poignée de main. Votre serveur ne devrait pas envoyer d'adresse IP.

  3. Assurez-vous que votre adresse IP ne figure sur aucun DNSRBL (liste noire). Si c'est le cas, prenez-en soin.

  4. Vérifiez la réputation de votre IP avec les services de réputation les plus populaires (SenderScore est un gros actuellement, mais cela pourrait ne pas durer avec le temps). Ces services ont généralement des directives pour améliorer votre réputation, mais ne sont pas vraiment des "go / no-go" comme les RBL.

  5. Ne pas les en- têtes de faux, ne mentent pas les en - têtes, et assurez - vous que vous incluez les en- têtes minimum dans les messages ( Dateet Fromsont nécessaires, il devrait y avoir un Subject, Sender, Reply-Toet To/ Cc/ Bcc[selon le cas]). C’est l’un de mes plus gros pièges avec des lettres d’information valides que je veux recevoir et qui se terminent par un courrier indésirable, car ils simulent un en-tête Outlook Express, omettent la date ou quelque chose de similaire.

Vous pouvez éventuellement envisager de configurer SPF, DKIM et DMARC. Ceux-ci aident à la délivrabilité, mais ne sont pas requis (pas par la grande majorité des serveurs de messagerie).


11

Malheureusement, il existe de nombreuses techniques de filtrage et certains fournisseurs de messagerie majeurs ne publient pas ce qu'ils utilisent et / ou quels poids sont attribués aux différents tests / filtres, il est donc difficile de savoir comment passer à travers. En règle générale, le spam a poussé les FAI et les utilisateurs vers une situation dans laquelle ils empêchent parfois la transmission de tels messages légitimes (en particulier des messages groupés tels que votre lettre d'information). Je ne considère plus le courrier électronique comme le moyen de transport à la fois fiable et à mi-chemin.

Pour être un peu moins négatif et plus utile ... Étant donné que vous rencontrez des problèmes spécifiques avec un client particulier, le programme peut vous dire des choses. Je ne connais pas spécifiquement Outlook, car je ne l'utilise nulle part moi-même, mais de nombreux filtres de messagerie introduisent des en-têtes dans les messages pour répertorier les filtres utilisés, leur résultat et la pondération accordée à ce filtre. Donc, si vous regardez la source complète des messages qui ont été déplacés vers des dossiers indésirables, vous trouverez peut-être des indices utiles. Par exemple, les filtres basés sur SpamAssassin injectent des en-têtes sous la forme suivante:

X-Spam-Flag: YES
X-Spam-Score: 13.371
X-Spam-Level: *************
X-Spam-Status: Yes, score=13.371 tagged_above=-10 required=5.4
    tests=[BAYES_99=3.5, FB_GET_MEDS=0.803, RCVD_IN_SORBS_WEB=0.619,
    RCVD_IN_XBL=3.033, RDNS_NONE=0.1, URIBL_AB_SURBL=1.86,
    URIBL_BLACK=1.955, URIBL_JP_SURBL=1.501]

(Cet exemple a été extrait d'un véritable spam dans ma pile de courrier indésirable)

Cela n’est toutefois pas évident, car le filtrage bayésien et les autres méthodes impliquant une formation des utilisateurs sont courants. Par conséquent, les filtres réussis et échoués peuvent différer considérablement de ceux des autres utilisateurs, même si le client a été configuré de manière identique. Vous devrez peut-être envisager un autre débouché pour vos nouvelles (de nombreuses personnes essaient d’utiliser des protocoles de réseau social pour cela, avec plus ou moins de succès).


9

Comme d'autres l'ont dit, vous voulez éviter de "ressembler" à un spam lorsque vous envoyez un e-mail, mais vous ne pouvez pas nécessairement savoir ce qui vous fera ressembler ou non à du spam, car les techniques varient.

Vous voudrez peut-être envisager d'envoyer un e-mail en texte brut à vos clients pour chaque lettre d'information contenant une brève description / message d'accueil suivi d'un "cliquez ici pour voir notre dernière lettre d'information!" message; De cette façon, vous pouvez héberger votre message sur un serveur Web, vous réduisez la taille des e-mails (et chargez votre serveur de messagerie) et, en prime, vous pouvez consulter les journaux sur votre serveur Web pour obtenir des informations sur le nombre de clients. en train de lire vos messages et de les supprimer.


Hmm. Je n'ai jamais vu un spammeur utiliser cette tactique auparavant ...
Ernie

En règle générale, un texte simple avec un lien légitime ou deux (pas très éparpillé généreusement) a tendance à passer au travers ... sinon, je ne peux pas envoyer de liens par courrier électronique à moi-même ou à d'autres personnes sans que celles-ci ne soient signalées comme spam. C'est comme dire que vous n'avez jamais vu des spammeurs envoyer une messagerie instantanée avec des "mots sales" pour inciter les gens à répondre. Le trafic légitime le fait aussi. La clé ne doit pas être "trop ​​spam" ... un nom d'utilisateur comme bevans n'est probablement pas aussi suspect que "hottienakedchick69", même si le contenu est le même, vous voyez ce que je veux dire?
Bart Silverstrim

7

Solution détaillée pour éviter que les e-mails soient identifiés comme spam et / ou ne parviennent pas aux destinataires

Exemple de situation: vous avez un serveur exécutant un site Web PHP example.comqui doit envoyer des courriels . Et vous remarquez que vos courriels ne sont pas toujours livrés. (Gros problème si vous êtes propriétaire d'un magasin et que les clients ne reçoivent pas les courriels après un achat!).

Si vous suivez toutes les étapes suivantes, cela devrait résoudre 99,9% des problèmes. (J'ai d'abord pensé qu'il était possible de ne faire que quelques-uns d'entre eux et de ne pas utiliser DKIM, mais ils ont finalement tous été nécessaires pour résoudre tous les problèmes que j'avais).

  1. Tout d’abord, qui envoie des courriels?

    Lorsque votre code PHP envoie des emails, c'est souvent avec la célèbre fonction PHP mail(...). Mais à quoi sert cette fonction, sous le capot? Lançons une test.phppage contenant <?php echo ini_get('sendmail_path'); ?>. Vous obtiendrez par exemple: /usr/sbin/sendmail -t -i. Bonne nouvelle, nous savons maintenant quel programme gère vraiment les emails!
    Maintenant, une information délicate: le nom sendmailpeut être divers programmes . Même si vous voyez sendmailà l'étape précédente, vous pourriez avoir sendmail ou postfix ou exim ou qmail, etc. installés. Faisons dpkg -S /usr/sbin/sendmail. La réponse est postfix: /usr/sbin/sendmailok, cela signifie que nous avons postfixinstallé .

  2. Consultez le fichier journal /var/mail/www-datapour savoir quels courriels n’ont pas été envoyés correctement et pourquoi. Cela pourrait être utile pour les prochaines étapes.

  3. Comme mentionné sur le blog de Jeff Atwood , il est temps de regarder les enregistrements PTR inversés. (Plus de détails à ajouter ici).

  4. Ajoutez la ligne suivante dans le fichier de configuration postfix /etc/postfix/main.cf:

    inet_protocols=ipv4
    

    Ensuite, relancez postfix avec service restart postfix. Pourquoi? Parce que j'ai eu des problèmes comme celui-ci lorsque le destinataire est gmail:

    Notre système a détecté que ce message ne correspond pas aux directives d'envoi IPv6 en ce qui concerne les enregistrements PTR et l'authentification 550-5.7.1. Consultez 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error pour plus d'informations sur 550 5.7.1.

    La solution la plus simple était alors de passer postfixà ipv4 uniquement, ainsi à cette étape 4 (ce qui pourrait être inutile pour vous?).

  5. Enregistrements DNS SPF . Afin de prouver que vous êtes autorisé à envoyer des courriers électroniques à partir de @example.com, vous pouvez ajouter un enregistrement SPF dans les enregistrements DNS du domaine example.com. J'ai trouvé quelque part cela The DNS record type 99 (SPF) has been deprecated, alors nous utilisons un enregistrement TXT à la place. Ajoutons ceci en tant qu’enregistrement DNS TXT (voir aussi la note 1) :

    v=spf1 a mx include:_spf.google.com include:sendgrid.net ~all
    

    Pourquoi ces inclus? Parce que mon serveur ne sera pas le seul à envoyer des emails de @ exemple.com! J'ai configuré Gmail pour qu'il envoie un courrier à contact@example.com ( voir la capture d'écran ici ), à l'aide du fournisseur de confiance SMTP Sendgrid . Si je ne les ajoute pas include:, Gmail ne serait pas autorisé à envoyer des emails @example.com.

  6. Signature numérique DKIM . Comme mentionné ici , l'objectif de DKIM est de s'assurer que le contenu du courrier n'a pas été falsifié pendant la transmission. Voici le processus d'installation sous Ubuntu (guide utile ici aussi):

    • apt-get install opendkim opendkim-tools

    • Créez les clés (vous pouvez également générer des clés et l’enregistrement DNS TXT correspondant avec http://dkimcore.org/tools/ ):

      mkdir /etc/opendkim
      cd /etc/opendkim
      opendkim-genkey -t -s mail -d example.com
      
    • Mettons ceci dans /etc/opendkim.conf:

      Syslog                 yes
      Domain                 *
      KeyFile                /etc/opendkim/mail.private
      Selector               mail
      AutoRestart            yes
      Background             yes
      Canonicalization       relaxed/relaxed
      DNSTimeout             5
      Mode                   sv
      SubDomains             no
      

      ceci dans /etc/default/opendkim:

      SOCKET="inet:8891@localhost" # Ubuntu default - listen on loopback on port 8891
      

      et ajoutez enfin ceci à la fin du fichier de configuration de postfix /etc/postfix/main.cf:

      # DKIM
      milter_default_action = accept
      milter_protocol = 2
      smtpd_milters = inet:localhost:8891
      non_smtpd_milters = inet:localhost:8891
      
    • Ajoutons maintenant la clé publique (trouvée dans /etc/opendkim/mail.txt) aux enregistrements DNS de votre domaine:

      mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=OqYHd...waPaQAX"
      

      Voici à quoi ça ressemble avec mon registraire Namelynx:

    • Dernière étape pour DKIM: redémarrez les services de messagerie avec service restart opendkim ; service restart postfix.

  7. Testez si tout fonctionne. La méthode la plus simple consiste à envoyer un courrier électronique via PHP à auth-results@verifier.port25.com(cet outil très utile est mis à disposition par Port25 Solutions):

    $emailfrom = "Example <contact@example.com>";
    $headers  = "MIME-Version: 1.0 \n";
    $headers .= "Content-Transfer-Encoding: 8bit \n";
    $headers .= "Content-type: text/plain; charset=utf-8\n";
    $headers .= "Reply-To: " . $emailfrom . "\n";
    $headers .= "From: " . $emailfrom . "\n";
    $headers .= "Bcc: example@gmail.com\n";
    mail("check-auth@verifier.port25.com", "Hello", "Hello!", $headers);
    

    Puis voir la réponse de cet outil, il devrait ressembler à ceci:

    ==========================================================
    Summary of Results
    ==========================================================
    SPF check:          pass
    DKIM check:         pass
    SpamAssassin check: ham
    

    Le service mail-tester.com est également utile.

  8. (Facultatif) Essayez postmaster.google.com. Je l'ai utilisé mais je ne me souviens pas si cela a aidé ou non.

  9. Si cela ne fonctionne toujours pas , une solution pourrait consister à externaliser le courrier électronique avec une solution professionnelle, afin d'éviter des jours et des nuits de débogage (infructueux). Voici un bon article à ce sujet. Voici une citation: "L'envoi d'e-mails à partir de votre application peut être ***. La moitié du temps, les messages envoyés depuis votre propre serveur sont simplement transférés dans le dossier de courrier indésirable du destinataire." que j’ai tristement découvert vrai, après des semaines de peaufinage.


Notes complémentaires:

(1)

-all : Fail: All mail servers not listed in the SPF record are explicitly not authorized to send mail using the sender’s domain.
~all : Soft Fail: All mail servers not listed in the SPF record are not authorized to send mail using the sender’s domain, but the owner of the domain is unwilling to make a strong assertion to that effect.
?all : Neutral: The domain controller cannot or does not want to assert whether or not all mail servers not listed in the SPF record are authorized to send mail using the sender’s domain.
+all : Pass: All mail servers are authorized to send mail on behalf of the sender’s domain.

6

Mon entreprise en ligne avait des problèmes avec l'envoi d'e-mails de confirmation de commande ou de non envoi d'e-mails de confirmation de commande (rejetés via des serveurs de messagerie). C'étaient des emails simples "voici un résumé de votre commande" avec un lien vers le domaine de notre site. Nous avons fini par acheter quelques comptes Google Apps pour mon entreprise. Vous pouvez configurer l'un d'entre eux pour qu'il agisse en tant que serveur SMTP. Avoir Google comme expéditeur du courrier a mis fin à tous ces problèmes.

En ce qui concerne les lettres d’information par courrier électronique, utilisez certainement un service qui gère pour vous l’adhésion / le retrait. Si vous utilisez quelqu'un d'autre qu'un service pour envoyer du courrier en nombre, vous serez probablement banni.


C'est une solution de contournement. Une solution appropriée serait de rectifier votre système défectueux et d’assurer au moins un enregistrement SPF approprié dans DNS.
John Gardeniers

3
En fait, si le fournisseur de services Internet sur lequel se trouve votre serveur de messagerie reçoit le drapeau noir comme spam, bonne chance avec cela. Nous étions sur Rackspace à l'époque. L'utilisation de Google comme SMTP a aidé, car Google s'est assuré qu'il ne soit pas sur la liste noire.
Chris K

1

Un nouveau guide a été publié sur l'email Inboxing

Le plus complet que j'ai jamais vu. Une liste de contrôle de 43 points différents couvrant tous les robinets et évitant d’être étiquetés comme spam. C'est continuellement mis à jour.

De la configuration du DNS à la configuration de l'authentification à la configuration de la surveillance de la réputation, à la réduction de votre taux de rebond, au test de votre contenu de messagerie, etc.

Heads to Tails couverture de tout par ZeroBounce.NET

https://www.zerobounce.net/guide-to-improve-inbox-and-delivery.html


1
Pour le moment, cet article n'est essentiellement qu'un lien. Pour vous assurer que la réponse reste utile même si le lien est rompu, modifiez-le pour inclure les informations pertinentes.
Anx
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.