it-swarm.com.de

Wie kann ich E-Mails senden und verhindern, dass sie als Spam eingestuft werden?

Dies ist eine kanonische Frage zum Umgang mit E-Mails, die von Ihrem Server gesendet werden und als Spam falsch klassifiziert werden. Für zusätzliche Informationen finden Sie möglicherweise ähnliche Fragen hilfreich:

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 beim Client (sogar 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 (zum Beispiel) was ist mit einem Link zum Abbestellen mit einer eindeutigen ID? Erhöht das eine Spam-Bewertung?

84
kcode

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 richtig eingestellt ist. Fügen Sie keine "Nur IP-Adresse" -Links ein. Schreiben Sie Ihre Kommunikation wie eine normale E-Mail. Machen Sie es sich wirklich einfach, sich abzumelden oder abzumelden. Andernfalls melden sich Ihre Benutzer ab, indem Sie auf die Schaltfläche "Spam" klicken. Dies wirkt sich auf Ihren Ruf 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ößen und die Verzögerung zwischen den Stapeln bereitzustellen. Einige Mailserver akzeptieren keine großen Sendestapel oder fortlaufenden Aktivitäten.

Verwenden Sie E-Mail-Authentifizierungsmethoden wie SPF und Domain Keys , um zu beweisen, dass Ihre E-Mails und Ihr Domain-Name zusammengehören. Der nette Nebeneffekt ist, dass Sie verhindern, dass Ihre E-Mail-Domain gefälscht wird. Außerdem check your reverse DNS , um sicherzustellen, dass die IP-Adresse Ihres Mailservers auf den Domainnamen verweist, den Sie zum Senden von Mail 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" <[email protected]>) und überwachen Sie Ihre Missbrauchskonten wie [email protected] und [email protected] .

83
splattne

Empfänger Ihrer Nachricht, deren E-Mail-Adressen abprallen, automatisch abbestellen und Beschwerde-Feedback-Schleifen bei großen E-Mail-Anbietern einrichten und Empfänger automatisch abbestellen, die Ihre Nachricht als Spam/Junk melden. Dies trägt wesentlich zur Verbesserung Ihres Rufs und Ihrer Zustellbarkeit bei.

22
wg

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

Diese Mindestanforderungen sind heutzutage im Wesentlichen erforderlich:

  1. Stellen Sie sicher, dass Sie DNS vorwärts und rückwärts richtig konfiguriert haben. Ein Mailserver muss sich in einem HELO/EHLO-Austausch identifizieren. Dieser Name sollte nach der IP suchen, die der Server verwendet. Ebenso sollte die umgekehrte Suche dieser IP den Namen zurückgeben.

  2. Stellen Sie sicher, dass Ihr Server tatsächlich den Hostnamen in diesem Handshake 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 mit den beliebtesten Reputationsdiensten (SenderScore ist derzeit eine große Sache, die sich jedoch im Laufe der Zeit möglicherweise nicht hält). Diese Dienste haben im Allgemeinen Richtlinien zur Verbesserung Ihres Rufs, sind jedoch kein direktes "Go/No-Go" wie RBLs.

  5. Fälschen Sie keine Header, lügen Sie nicht in Headern und stellen Sie sicher, dass Sie die Mindestheader in Nachrichten einfügen (Date und From sind erforderlich, es sollte ein Subject, Sender, Reply-To und To/Cc/Bcc [falls zutreffend]). Dies ist einer meiner größten Probleme mit gültigen Newslettern, die ich in Junk erhalten möchte, weil sie einen Outlook Express-Header fälschen, das Datum weglassen oder ähnliches.

Optional sollten Sie SPF, DKIM und DMARC einrichten. Diese helfen bei der Zustellbarkeit, sind jedoch nicht erforderlich (nicht von der überwiegenden Mehrheit der E-Mail-Server).

15
Chris S

Leider gibt es viele verschiedene Filtertechniken und einige große Mail-Anbieter veröffentlichen nicht, was sie verwenden und/oder welche Gewichte verschiedenen Tests/Filtern zugewiesen werden. Daher ist es schwierig zu wissen, wie man durchkommt. Grundsätzlich hat Spam ISPs und Benutzer in eine Situation gebracht, 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 einmal war.

Um etwas weniger negativ und hilfreicher zu sein ... Da Sie bestimmte Probleme mit einem bestimmten Client haben, kann das Programm Ihnen möglicherweise Dinge mitteilen. Ich weiß nicht speziell über Outlook Bescheid, da ich es selbst nirgendwo verwende, aber viele E-Mail-Filter fügen Header in Nachrichten ein, um aufzulisten, welche Filter verwendet wurden, was das Ergebnis war und wie gewichtet dieser 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 fügen SpamAssassin-basierte Filter Header der folgenden Form ein:

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 wurde aus einer echten Spam-Nachricht in meinem Müllhaufen entnommen.)

Dies ist jedoch nicht eindeutig, da Bayes'sche Filterung und andere Methoden, die Benutzerschulungen beinhalten, üblich sind. Was Ihre Filter bestehen und nicht bestehen, kann sich daher deutlich von denen anderer Personen unterscheiden, obwohl der Client sofort identisch konfiguriert wurde. Möglicherweise müssen Sie eine andere Möglichkeit für Ihre Nachrichten in Betracht ziehen (viele Menschen versuchen, dafür Protokolle für soziale Netzwerke zu verwenden, mit unterschiedlichem Erfolg).

11
David Spillett

Wie andere gesagt haben, möchten Sie vermeiden, dass Sie beim Senden der E-Mail wie eine Spam-Nachricht "aussehen", aber Sie können nicht unbedingt sagen, was Sie wie Spam aussehen lässt oder nicht, da die Techniken variieren.

Eine Sache, die Sie in Betracht ziehen sollten, ist das Senden einer Klartext-E-Mail an Ihre Kunden für jeden Newsletter, der tatsächlich 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 Größe von E-Mails reduzieren (und auf Ihren Mailserver laden) und als Bonus die Protokolle auf Ihrem Webserver überprüfen, um Feedback zu erhalten, wie viele Kunden es gibt Lesen Sie Ihre Nachrichten tatsächlich und löschen Sie sie nicht.

9

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

Beispielsituation: Auf einem Server wird eine PHP Website für example.com Ausgeführt, auf der E-Mails gesendet werden müssen Und Sie bemerken, dass Ihre E-Mails nicht immer zugestellt werden. (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, löst es sollte 99,9% der Probleme. (Ich dachte zuerst, es sei möglich, nur einige von ihnen zu machen und zum Beispiel DKIM zu überspringen, aber schließlich mussten alle von ihnen alle Probleme lösen, die ich hatte).

  1. Wer sendet zuerst E-Mails?

    Wenn Ihr PHP Code E-Mails sendet, ist es oft mit der berühmten PHP Funktion mail(...). Aber was macht diese Funktion unter der Haube Lassen Sie uns eine test.php - Seite mit <?php echo ini_get('sendmail_path'); ?> ausführen. Sie erhalten zum Beispiel: /usr/sbin/sendmail -t -i. Gute Nachrichten, jetzt wissen wir, welches Programm wirklich funktioniert die E-Mails!
    Nun eine knifflige Information: Der Name sendmail kann verschiedene Programme sein. Selbst wenn Sie im vorherigen Schritt sendmail sehen, haben Sie möglicherweise sendmail oder postfix oder exim oder qmail usw. Eingerichtet. Machen wir dpkg -S /usr/sbin/sendmail. Die Antwort lautet postfix: /usr/sbin/sendmail, Ok, dies bedeutet , dass wir postfix installiert haben .

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

  3. Wie auf Jeff Atwoods Blog erwähnt, ist es Zeit, sich die umgekehrten PTR-Datensätze anzusehen. (Weitere Details hier hinzufügen).

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

    inet_protocols=ipv4
    

    Starten Sie dann postfix mit service restart postfix Neu. 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-Übertragungsrichtlinien 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 bestand dann darin, postfix nur auf ipv4 umzustellen, 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 von @example.com Senden dürfen, können Sie einen SPF-Eintrag in die DNS-Einträge der Domain example.com Einfügen. Ich habe irgendwo gefunden, dass 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 Anmerkung 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 sendet! Ich habe Google Mail so konfiguriert, dass Mail senden als [email protected] ( siehe Screenshot hier ) unter Verwendung des vertrauenswürdigen SMTP-Anbieters Sendgrid . Wenn ich diese include: Nicht hinzufüge, darf Google Mail keine E-Mails von @example.com Senden.

  6. [~ # ~] dkim [~ # ~] digitale Signatur. Wie bereits erwähnt hier , ist es das Ziel von DKIM sicherzustellen, dass E-Mail-Inhalte während der Übertragung nicht manipuliert werden. Hier ist der Installationsprozess in Ubuntu (nützliche Anleitung hier auch):

    • apt-get install opendkim opendkim-tools

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

      mkdir /etc/opendkim
      cd /etc/opendkim
      opendkim-genkey -t -s mail -d example.com
      
    • Lassen Sie uns dies in /etc/opendkim.conf Einfügen:

      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:[email protected]" # Ubuntu default - listen on loopback on port 8891
      

      und fügen Sie dies schließlich am Ende der Postfix-Konfigurationsdatei /etc/postfix/main.cf hinzu:

      # 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 service restart opendkim ; service restart postfix Neu.

  7. Testen Sie, ob alles funktioniert. Die einfachste Methode ist das Senden einer E-Mail über PHP an [email protected] () Dieses sehr nützliche Tool wird von Port25 Solutions zur Verfügung gestellt.

    $emailfrom = "Example <[email protected]>";
    $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: [email protected]\n";
    mail("[email protected]", "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 erinnere mich nicht, ob es geholfen hat oder nicht.

  9. Wenn es immer noch nicht funktioniert , könnte eine Lösung darin bestehen, E-Mails mit einer professionellen Lösung auszulagern, um Tage und Nächte des (erfolglosen) Debuggens zu vermeiden. Here ist ein guter Artikel dazu. Hier ist ein Zitat: "Das Senden von E-Mails von Ihrer App kann ***. In der Hälfte der Zeit werden Nachrichten, die von Ihrem eigenen Server gesendet werden, einfach in den Junk-Ordner des Empfängers verschoben." dass ich Nach wochenlangen Optimierungen leider als wahr 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.
7
Basj

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

Verwenden Sie für E-Mail-Newsletter auf jeden Fall einen Dienst, der das Opt-In/Out für Sie übernimmt. Wenn Sie andere Personen als einen Dienst zum Senden von Massenpost verwenden, werden Sie wahrscheinlich gesperrt.

6
Chris K

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 Wasserhahn abdecken, um zu vermeiden, dass Sie als Spam markiert werden. Das wird ständig aktualisiert.

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

Von Kopf bis Fuß wird von ZeroBounce.NET alles abgedeckt

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

1
Henry