Wie versende ich E-Mails und vermeide, dass sie als Spam eingestuft werden?


82

Dies ist eine allgemeine Frage zur Behandlung von E-Mails, die von Ihrem Server gesendet werden und als Spam eingestuft wurden. Für zusätzliche Informationen können Sie diese ähnlichen Fragen hilfreich finden:

Manchmal möchte ich Newsletter an meine Kunden senden. Das Problem ist, dass einige der E-Mails als Spam-Nachrichten abgefangen werden. Meistens von Outlook auf dem Client (auch in meinem eigenen Outlook 2007).

Jetzt möchte ich wissen, was zu tun ist, um "gute" E-Mails zu erstellen. Ich weiß über Reverse Lookup usw. Bescheid, aber was ist (zum Beispiel) mit einem Link zum Abbestellen mit einer eindeutigen ID? Steigert das die Spam-Bewertung?


Eine Schritt-für-Schritt-Checkliste sowie Richtlinien zur Fehlerbehebung finden Sie in einer guten Antwort auf eine ähnliche Frage auf superuser.com .
MattBianco

Antworten:


82

Stellen Sie sicher, dass Ihre E-Mails nicht wie typische Spam-E-Mails aussehen: Fügen Sie nicht nur ein großes Bild ein. Überprüfen Sie, ob der Zeichensatz korrekt eingestellt ist. Fügen Sie keine Links nur für IP-Adressen ein. Schreiben Sie Ihre Kommunikation so, als würden Sie eine normale E-Mail schreiben. Machen Sie es wirklich einfach, sich abzumelden oder abzumelden. Andernfalls kündigen Ihre Benutzer das Abonnement, indem Sie auf die Schaltfläche "Spam" klicken. Dies wirkt sich auf Ihre Reputation aus.

Auf der technischen Seite: Wenn Sie Ihren SMTP-Server auswählen können, stellen Sie sicher, dass es sich um einen „sauberen“ SMTP-Server handelt. IP-Adressen von Spam-SMTP-Servern werden häufig von anderen Anbietern auf die schwarze Liste gesetzt. Wenn Sie Ihre SMTP-Server nicht im Voraus kennen, empfiehlt es sich, in Ihrer Anwendung Konfigurationsoptionen für die Steuerung der Stapelgröße und die Verzögerung zwischen den Stapeln bereitzustellen. Einige Mailserver akzeptieren keine großen Sendestapel oder kontinuierliche Aktivitäten.

Verwenden Sie E-Mail-Authentifizierungsmethoden wie SPF und Domänenschlüssel, um zu beweisen, dass Ihre E-Mails und Ihr Domänenname zusammengehören. Der nette Nebeneffekt ist, dass Sie verhindern, dass Ihre E-Mail-Domain gefälscht wird. Überprüfen Sie auch Ihr Reverse-DNS , um sicherzustellen, dass die IP-Adresse Ihres Mailservers auf den Domainnamen verweist, den Sie zum Senden von E-Mails verwenden.

Stellen Sie sicher, dass die Antwortadresse Ihrer E-Mails eine gültige, vorhandene Adresse ist. Verwenden Sie den vollständigen, echten Namen des Empfängers im Feld An, nicht nur die E-Mail-Adresse (z. B. "John Doe" <john.doe@example.com>), und überwachen Sie Ihre Missbrauchskonten, z. B. abuse@example.com und postmaster@example.com .


Und verwenden Sie mehrteilige / alternative Versionen Ihrer HTML-E-Mail, die nur Text enthalten. Dies bedeutet, dass der Spam-Scanner beim Klassifizieren nützlicheres Material zur Verfügung hat.
Matt

22

Empfänger Ihrer Nachricht, deren E-Mail-Adressen nicht mehr verfügbar sind, automatisch abbestellen und Feedback-Schleifen zu Beschwerden bei wichtigen E-Mail-Anbietern einrichten. Empfänger, die Ihre Nachricht als Spam / Junk melden, werden automatisch abbestellt. Dies trägt wesentlich zur Verbesserung Ihres Rufs und Ihrer Zustellbarkeit bei.


4
Das ist sehr interessant. Ich wusste nichts über diese Rückkopplungsschleifen. Bieten alle Anbieter ein solches Programm an?
Kcode

1
Nicht alle Anbieter, nein. Aber die meisten der wichtigsten, einschließlich Yahoo und AOL und andere. Alle mir bekannten Rückmeldungsschleifen erfordern, dass Nachrichten von einer Domain gesendet werden, die von DKIM oder DomainKeys authentifiziert wurde. Ich glaube, einige erfordern auch SPF, aber seltener.

15

In dieser Frage wird erwähnt, dass die Grundlagen vorhanden sind, aber da wir andere auf diese Frage als kanonische Frage hinweisen, möchte ich nur sichergehen, dass wir unsere Grundlagen behandeln.

Diese Mindestanforderungen sind heutzutage im Wesentlichen erforderlich:

  1. Stellen Sie sicher, dass Sie Forward- und Reverse-DNS korrekt konfiguriert haben. Ein Mailserver muss sich in einer HELO / EHLO-Vermittlungsstelle identifizieren. Dieser Name sollte nach der IP-Adresse suchen, die der Server verwendet. Ebenso sollte die umgekehrte Suche nach dieser IP den Namen zurückgeben.

  2. Stellen Sie sicher, dass Ihr Server den Hostnamen in diesem Handshake tatsächlich sendet. Ihr Server sollte keine IP-Adresse senden.

  3. Stellen Sie sicher, dass Ihre IP-Adresse nicht in DNSRBLs (Blacklists) enthalten ist. Wenn ja, kümmern Sie sich darum.

  4. Überprüfen Sie die Reputation Ihrer IP-Adresse mit den bekannteren Reputationsdiensten (SenderScore ist derzeit ein wichtiger Wert, der sich jedoch im Laufe der Zeit möglicherweise nicht bewährt hat). Diese Dienste enthalten im Allgemeinen Richtlinien zur Verbesserung Ihres Rufs, sind jedoch kein absolutes "go / no-go" wie RBLs.

  5. Sie keine gefälschten Header, liegen nicht in Header, und stellen Sie sicher , dass Sie die Mindest Header in Nachrichten sind , einschließlich ( Dateund Fromerforderlich sind, sollte es eine sein Subject, Sender, Reply-Tound To/ Cc/ Bcc[als zutreffend]). Dies ist eines meiner größten Probleme mit gültigen Newslettern, die ich erhalten möchte, weil sie einen Outlook Express-Header vortäuschen, das Datum weglassen oder ähnliches.

Optional sollten Sie SPF, DKIM und DMARC einrichten. Diese helfen bei der Zustellbarkeit, werden aber nicht benötigt (nicht von der überwiegenden Mehrheit der E-Mail-Server).


11

Leider gibt es viele verschiedene Filtertechniken und einige große Mail-Anbieter veröffentlichen nicht, was sie verwenden und / oder welche Gewichte für verschiedene Tests / Filter vergeben werden. Daher ist es schwierig zu wissen, wie man durchkommt. Grundsätzlich hat Spam ISPs und Benutzer in eine Situation getrieben, in der sie es manchmal schwierig machen, dass solche legitimen Nachrichten (insbesondere Massennachrichten wie Ihr Newsletter) durchkommen. Ich halte E-Mails nicht mehr für die halbwegs zuverlässige Transportmethode, die es früher war.

Ein bisschen weniger negativ und hilfreicher zu sein ... Da Sie spezielle Probleme mit einem bestimmten Client haben, kann das Programm Ihnen einige Dinge mitteilen. Ich kenne Outlook nicht genau, da ich es selbst nirgendwo verwende, aber viele Mail-Filter fügen Header in Nachrichten ein, um aufzulisten, welche Filter verwendet wurden, was das Ergebnis war und wie die Gewichtung für diesen Filter war. Wenn Sie sich also die vollständige Quelle der Nachrichten ansehen, die in Junk-Ordner verschoben wurden, finden Sie möglicherweise nützliche Hinweise. Beispielsweise injizieren SpamAssassin-basierte Filter Header der folgenden Form:

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]

(Dieses Beispiel stammt aus einer echten Spam-Nachricht in meinem Müllhaufen.)

Dies ist jedoch nicht eindeutig, da die Bayes'sche Filterung und andere Methoden, die Benutzerschulungen beinhalten, häufig vorkommen. Daher können sich die von Ihnen bestandenen und nicht bestandenen Filter erheblich von denen anderer Personen unterscheiden, obwohl der Client standardmäßig identisch konfiguriert wurde. Möglicherweise müssen Sie eine andere Möglichkeit für Ihre Nachrichten in Betracht ziehen (viele Menschen versuchen, Social-Networking-Protokolle zu verwenden, mit unterschiedlichem Erfolg).


9

Wie bereits erwähnt, möchten Sie vermeiden, beim Versenden der E-Mail wie eine Spam-Nachricht auszusehen, können aber nicht unbedingt sagen, wie Spam Sie aussehen soll oder nicht, da die Techniken variieren.

Möglicherweise möchten Sie Ihren Kunden für jeden Newsletter eine reine Text-E-Mail senden, die eine kurze Beschreibung / Begrüßung enthält, gefolgt von einem "Klicken Sie hier, um unseren neuesten Newsletter anzuzeigen!" Botschaft; Auf diese Weise können Sie Ihre Nachricht auf einem Webserver hosten, die E-Mail-Größe reduzieren (und die Belastung Ihres Mailservers verringern) und als Bonus die Protokolle auf Ihrem Webserver überprüfen, um Feedback darüber zu erhalten, wie viele Kunden es gibt Lesen Sie Ihre Nachrichten und löschen Sie sie nicht.


Hmm. Ich habe noch nie einen Spammer gesehen, der diese Taktik angewendet hat ...
Ernie

Normalerweise kommt ein einfacher Text mit einem oder zwei legitimen Links (nicht viel großzügig verteilt) durch. Andernfalls kann ich keine Links per E-Mail an mich selbst oder andere Personen senden, ohne dass sie als Spam gekennzeichnet werden. Es ist wie zu sagen, dass Sie noch nie gesehen haben, wie Spammer Sofortnachrichten mit "schmutzigen Worten" verschickten, um die Leute zum Antworten zu verleiten. Der legale Verkehr macht es auch. Der Schlüssel ist nicht "zu spammy" zu sein ... ein Benutzername wie bevans ist wahrscheinlich nicht so verdächtig wie "hottienakedchick69", auch wenn der Inhalt der gleiche ist, weißt du was ich meine?
Bart Silverstrim

7

Detaillierte Lösung, um zu vermeiden, dass E-Mails als Spam identifiziert werden und / oder nicht beim Empfänger ankommen

Beispielsituation: Sie haben einen Server, auf dem eine PHP-Website ausgeführt wird example.com, auf der E-Mails gesendet werden müssen . Und Sie bemerken, dass Ihre E-Mails nicht immer zugestellt werden. (Ein großes Problem, wenn Sie ein Ladenbesitzer sind und die Kunden die E-Mails nach dem Kauf nicht erhalten!).

Wenn Sie alle folgenden Schritte ausführen , sollten 99,9% der Probleme behoben sein. (Ich dachte zuerst, es sei möglich, nur einige davon zu machen und beispielsweise DKIM zu überspringen, aber schließlich mussten alle alle meine Probleme lösen).

  1. Zuallererst, wer verschickt E-Mails?

    Wenn Ihr PHP-Code E-Mails sendet, geschieht dies oft mit der berühmten PHP-Funktion mail(...). Aber was macht diese Funktion unter der Haube? Lassen Sie uns eine test.phpSeite mit ausführen <?php echo ini_get('sendmail_path'); ?>. Sie werden beispielsweise erhalten: /usr/sbin/sendmail -t -i. Gute Nachrichten, jetzt wissen wir, welches Programm die E-Mails wirklich verarbeitet !
    Nun eine knifflige Info: Der Name sendmailkann verschiedene Programme sein . Selbst wenn Sie sendmailim vorherigen Schritt sehen, ist möglicherweise sendmail oder postfix oder exim oder qmail usw. installiert. Lass uns machen dpkg -S /usr/sbin/sendmail. Die Antwort lautet postfix: /usr/sbin/sendmail: OK, das heißt, wir haben postfixinstalliert .

  2. Sehen Sie in der Protokolldatei /var/mail/www-datanach, welche E-Mails nicht korrekt gesendet wurden und warum. Dies kann für die nächsten Schritte hilfreich sein.

  3. Wie in Jeff Atwoods Blog erwähnt , ist es an der Zeit, sich die Reverse-PTR-Aufzeichnungen anzusehen. (Weitere Details werden hier hinzugefügt).

  4. Fügen Sie der Postfix-Konfigurationsdatei die folgende Zeile hinzu /etc/postfix/main.cf:

    inet_protocols=ipv4
    

    Dann mit postfix neu starten service restart postfix. Warum? Weil ich solche Probleme hatte, wenn der Empfänger Google Mail ist:

    Unser System hat festgestellt, dass diese Nachricht 550-5.7.1 nicht den IPv6-Versandrichtlinien für PTR-Datensätze und die 550-5.7.1-Authentifizierung entspricht. Weitere Informationen zu 550 5.7.1 finden Sie unter 550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error .

    Die einfachste Lösung war dann, postfixnur auf ipv4 umzusteigen, also diesen Schritt 4 (was könnte für Sie unnötig sein?).

  5. SPF-DNS-Einträge . Um zu beweisen, dass Sie E-Mails senden dürfen @example.com, können Sie den DNS-Einträgen der Domain einen SPF-Eintrag hinzufügen example.com. Ich habe das irgendwo gefunden The DNS record type 99 (SPF) has been deprecated, also verwenden wir stattdessen einen TXT-Eintrag. Fügen wir dies als TXT-DNS-Eintrag hinzu (siehe auch Hinweis 1) :

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

    Warum gehören dazu? Weil mein Server nicht der einzige ist, der E-Mails von @ example.com versendet! Ich habe Google Mail so konfiguriert, dass E- Mails unter Verwendung des vertrauenswürdigen SMTP-Anbieters Sendgrid als contact@example.com ( siehe Abbildung hier ) gesendet werden . Wenn ich diese nicht hinzufüge include:, kann Google Mail keine E-Mails von senden @example.com.

  6. DKIM digitale Signatur. Wie hier erwähnt , ist es das Ziel von DKIM, sicherzustellen, dass der Mail-Inhalt während der Übertragung nicht manipuliert wird. Hier ist der Installationsprozess in Ubuntu (nützliche Anleitung auch hier ):

    • apt-get install opendkim opendkim-tools

    • Erstellen Sie die Schlüssel (Sie können auch Schlüssel und den entsprechenden DNS-TXT-Eintrag unter http://dkimcore.org/tools/ generieren ):

      mkdir /etc/opendkim
      cd /etc/opendkim
      opendkim-genkey -t -s mail -d example.com
      
    • Lassen Sie uns dies einfügen in /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
      

      dies in /etc/default/opendkim:

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

      Und zum Schluss fügen Sie dies am Ende der Postfix-Konfigurationsdatei hinzu /etc/postfix/main.cf:

      # DKIM
      milter_default_action = accept
      milter_protocol = 2
      smtpd_milters = inet:localhost:8891
      non_smtpd_milters = inet:localhost:8891
      
    • Fügen wir nun den öffentlichen Schlüssel (gefunden in /etc/opendkim/mail.txt) zu den DNS-Einträgen Ihrer Domain hinzu:

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

      So sieht es mit meinem Registrar Namelynx aus:

    • Letzter Schritt für DKIM: Starten Sie die Mail-Dienste mit neu service restart opendkim ; service restart postfix.

  7. Testen Sie, ob alles funktioniert. Am einfachsten ist es, eine E-Mail per PHP an zu senden auth-results@verifier.port25.com(dieses sehr nützliche Tool wird von Port25 Solutions zur Verfügung gestellt):

    $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);
    

    Dann sehen Sie die Antwort dieses Tools, es sollte so aussehen:

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

    Der Dienst mail-tester.com ist ebenfalls nützlich.

  8. (Optional) Versuchen Sie es mit postmaster.google.com. Ich habe es benutzt, aber ich kann mich nicht erinnern, ob es geholfen hat oder nicht.

  9. Wenn es immer noch nicht funktioniert , besteht eine Lösung darin, E-Mails durch eine professionelle Lösung auszulagern, um Tage und Nächte des (erfolglosen) Debuggens zu vermeiden. Hier ist ein guter Artikel dazu. Hier ist ein Zitat: "Das Versenden von E-Mails von Ihrer App kann zu Problemen führen. In der Hälfte der Zeit werden Nachrichten, die von Ihrem eigenen Server gesendet werden, einfach in den Junk-Ordner des Empfängers verschoben." das habe ich leider nach wochenlangem optimieren entdeckt.


Zusätzliche Bemerkungen:

(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

Mein Online-Geschäft hatte Probleme mit Auftragsbestätigungs-E-Mails, die an Spam gingen oder nicht einmal zugestellt wurden (gemieden über Mailserver). Dies waren einfache "Hier ist eine Zusammenfassung Ihrer Bestellung" -E-Mails mit einem Link zur Domain unserer Site. Am Ende haben wir ein paar Google Apps-Konten für mein Unternehmen gekauft. Sie können einen davon als SMTP-Server einrichten. Google als E-Mail-Absender zu haben, hat all diese Probleme gestoppt.

Verwenden Sie in Bezug auf E-Mail-Newsletter auf jeden Fall einen Dienst, der die An- und Abmeldung für Sie übernimmt. Wenn Sie zum Versenden von Massenpost einen anderen Dienst als einen Dienst verwenden, werden Sie wahrscheinlich gebannt.


Das ist eine Problemumgehung. Eine geeignete Lösung wäre, Ihr fehlerhaftes System zu beheben und sicherzustellen, dass Sie mindestens einen ordnungsgemäßen SPF-Eintrag in DNS haben.
John Gardeniers

3
Wenn der ISP, auf dem sich Ihr Mailserver befindet, als Spam gemeldet wird, wünschen wir Ihnen viel Erfolg. Wir waren zu der Zeit auf Rackspace. Die Verwendung von Google als SMTP hat geholfen, da Google dafür gesorgt hat, dass es nicht auf der schwarzen Liste steht.
Chris K

2

Es gibt einen neuen Leitfaden, der im E-Mail-Posteingang veröffentlicht wurde

Das umfassendste, das ich je gesehen habe. Eine Checkliste mit 43 verschiedenen Punkten, die jeden Hahn abdecken, um zu verhindern, dass er als Spam markiert wird. Das wird ständig aktualisiert.

Vom Einrichten von DNS, Konfigurieren der Authentifizierung, Einrichten der Reputationsüberwachung, Reduzieren der Absprungrate, Testen des E-Mail-Inhalts usw.

ZeroBounce.NET deckt alles von Kopf bis Fuß ab

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


Im Moment ist dieser Beitrag im Wesentlichen nur ein Link. Um sicherzustellen, dass die Antwort auch dann nützlich bleibt, wenn der Link unterbrochen wird, bearbeiten Sie sie mit den relevanten Informationen.
Angst
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.