phpMailer kommt nicht in Hotmail an?

8

Nachdem ich SPF Record eingerichtet habe, bin ich immer noch hier, um zu überprüfen, warum ich diese E-Mail nicht an einen Hotmail-Account senden kann. Ich kann es ohne Probleme an Google Mail senden. Bitte bestätigen Sie, ob der Code korrekt ist und der SPF-Datensatz korrekt ist:

%Vor%

Hier ist der SPF:

%Vor%

Sind alle diese richtig konfiguriert?

    
Elevant 14.05.2015, 12:39
quelle

6 Antworten

0

Hatte das gleiche Problem. Ich habe das ganze Skript 30 mal überprüft. Jede Einstellung jeweils. und checked and rechecked dns zeichnet dkim und spf 100 mal auf.

Nichts hat funktioniert.

Ich habe hotmail / outlook / live per E-Mail über das Problem gesendet. Ich habe keine Hilfe erwartet, aber innerhalb weniger Stunden war das Problem gelöst.

Es war nicht im Drehbuch. Hotmail blockiert nur E-Mails, die über die meisten Webseiten gesendet werden. Auch wenn Ihr Spam-Ruf in Ordnung ist. Sie haben die IP des Servers auf eine Whitelist gesetzt und das Problem wurde gelöst.

Sie können es zurück ändern, wenn sie ein schlechtes Verhalten feststellen. Es gibt ein Limit für das Senden von E-Mails. Wenn Ihr Server einen schlechten Ruf hat, wird er den Server wahrscheinlich nicht zu seiner Whitelist hinzufügen. Dies kann bei Shared Hosting-Paketen ein Problem sein. Ein anderer Benutzer auf demselben Server, auf dem Sie Ihre Website hosten, kann die Reputation des Servers erhöhen.

    
KimWowBoom 06.01.2017, 22:36
quelle
5

Benutze SMTP Auth, dann würde sich Hotmail nicht mehr beschweren. Anonyme E-Mails werden von fast allen empfangenden Servern als Spam angesehen.

%Vor%

Aber ofc. Abhängig davon, ob Sie die Kontrolle über Ihr SMTP haben oder nicht, sollten Sie sicherstellen, dass grundlegende Dinge wie Reverse-DNS-Lookup richtig eingerichtet ist

Aufgrund der Diskussion in den Kommentaren möchte ich ein wenig mehr Informationen über mein Denken hinzufügen, warum SMTP Auth dies beheben wird:

Wenn Sie PHPMailer ohne die Definition eines SMTP-Servers verwenden, wird PHPMailer im mail -Modus betrieben, der nur die Funktion mail() von PHP aufruft.

Die Mail-Funktion selbst verwendet die SMTP-Einstellungen, die in der PHP-INI-Datei konfiguriert sind, oder die Standardwerte, die hier aufgelistet sind: Ссылка

Standardwerte:

%Vor%

Da das OP einen lokalen Mailserver konfiguriert hat (oder warum würde er MX-Records einrichten?), wird sich php nun ohne Authentifizierung mit diesem SMTP-Server verbinden. Der Server akzeptiert die Nachricht und sendet sie an den nächsten Server.

(Gleiches gilt, wenn 'sendmail' von unix verwendet wird)

Jeder Server in der Kette und insbesondere der empfangende Server können jetzt sehen, dass ein privates SMTP verwendet wurde und keine Authentifizierung war unter der Voraussetzung. Das ist schon Spam-Score über 9000, da bei einer Einstellung wie dieser (theoretisch) jeder diesen Server benutzen könnte, um Mails zu versenden! Einschränkungen wie nur von localhost sind ofc. anderen Servern nicht bekannt, daher wird SMTP als Open Mail Relay Ссылка betrachtet / p>

Wenn Sie PHPMailer zu SMTP-Auth umschalten (auch wenn der lokale SMTP-Server noch verwendet wird), wird diese Information zu dem Eintrag hinzugefügt, den der Server beim Weiterleiten der Mail erstellt hat. Der Eintrag wird wie folgt aussehen:

%Vor%

Der nachfolgende A after ESMTPA teilt dem empfangenden Server mit, dass Server1 ein gültiges Benutzerkonto auf mydomain.de verwendet hat, um den Sendeversuch zu starten, was bedeutet, dass der SMTP-Server weiß der Ursprung der Mail und könnte Informationen über den Absender bereitstellen.

Dennoch ist der lokale SMTP-Server nicht bekannt, daher könnte es in diesem Fall zu einer Greylist und zu verschiedenen RBLs kommen, was in diesem Fall kein Problem darstellen sollte.

Wenn der (lokale) SMTP-Server nun ALLE Prüfungen besteht (Reverse-DNS Lookup, Greylisting, RBLs und was nicht) - hat die Mail eine gute Chance, erfolgreich ausgeliefert zu werden, auch wenn kein Remote-SMTP verwendet wird Der Server konnte erfolgreich authentifiziert werden, ebenso wie der Absender, der diesen Server verwendet. (Sonst könnte kein Unternehmen eigene Server einrichten)

Daher wirkt sich die Verwendung von SMTP-Auth (oder einer anderen Authentifizierungsmethode) auch dann aus, wenn kein Remote-SMTP-Server verwendet wird.

Authentifizierte Mails stellen keine Garantie dafür dar, dass sie nicht als Spam betrachtet werden - aber nicht authentifizierte Mails werden im Spam-Score gängiger Systeme definitiv höher eingestuft.

    
dognose 14.05.2015 12:58
quelle
0

Haben Sie auf einem Live-Server getestet? Wenn ja, welchen Fehler haben Sie bekommen? Hast du das Debugging deines phpmailers aktiviert, um zu wissen, welche Fehler es hat? Wenn Sie nicht mit SMTP arbeiten, können Sie dies mit

testen

$mail->do_debug = true;

Wenn Sie SMTP verwenden, verwenden Sie

$mail->SMTPDebug = true;

Welche Ausgabe haben Sie von Ihrem Debugger erhalten? Von dort bekommst du einen Hinweis darauf, woher dein Problem kommt.

Ich nehme auch die Antwort von @ dognose an, indem ich Sie auffordere, SMTP besser zu verwenden. Auf diese Weise durchläuft Ihre E-Mail eine Authentifizierung, die Ihre Identität bestätigt.

%Vor%

Wenn $mail->Port = 26; nicht funktioniert, können Sie $mail->Port = 25; versuchen.

    
OmniPotens 26.05.2015 09:05
quelle
0

Der momentan von Ihrem DNS veröffentlichte SPF ist ungültig, weil Sie drei Datensätze haben!:

%Vor%

Der erste ist gültig; Sie sollten die zweiten beiden löschen.

Der Inhalt dieses Datensatzes ist für Ihre Domäne korrekt, wenn Sie E-Mails von 182.50.130.73 senden. Die 'mx'-Zeilengruppe ist nicht unbedingt notwendig, da sie auf securyserver.net trotzdem zeigt, aber sie kann DNS-Lookups auf empfangenden Servern speichern.

    
Synchro 26.05.2015 17:42
quelle
0

Bevor Sie mit dem Senden von E-Mails über mail () oder SMTP beginnen, stellen Sie sicher, dass Sie ein gültiges Absender-E-Mail-Konto in Ihrem cpanel erstellen.

%Vor%

Dies ist sehr wichtig, wenn nicht alle E-Mails, die Sie senden, als SPAM markiert werden und zu Junk gehen.

Sobald dies erledigt ist, müssen Sie Domänenschlüssel und SPF-Datensätze einrichten. Wenn Sie eine dedizierte IP verwenden, anstatt die von Ihren Hosts angegebene Freigabe zu verwenden, wird dies ebenfalls hilfreich sein.

Überprüfen Sie abschließend Ihre E-Mails mit allen drei großen E-Mail-Anbietern wie Hotmail, Yahoo und Gmail.

    
pbu 26.05.2015 19:53
quelle
0

Wahrscheinlich müssen Sie den genauen Grund Schritt für Schritt aufschlüsseln. Ich weiß genau, dass Hotmail einen regelbasierten Spam-Filter verwendet (was ziemlich streng ist) und Gmail mehr wie ein selbstlernendes System verwendet, was erklären könnte, warum Gmail Ihre Nachricht akzeptiert und Hotmail nicht.

Folgendes können Sie jedoch überprüfen:

  1. Ein SPF-Datensatz funktioniert nur in der Domäne, in der der SPF-Datensatz hinzugefügt wurde, und funktioniert nur für E-Mails, die von ips / Domänen gesendet werden, die in diesem SPF definiert sind. Stellen Sie daher sicher, dass Ihr Code von einem Server ausgeführt wird, der in Ihrem SPF vorhanden ist.
  2. Die Verwendung von SMTP, wie oben vorgeschlagen, kann die Zuverlässigkeit erhöhen (aber es hängt wirklich vom Spam-Filter der Empfänger ab). Wenn Sie jedoch auf einem lokalen Server testen, können Sie die E-Mails mithilfe von SMTP über einen im SPF definierten Mail-Server senden. Sonst
  3. Wenn der von Ihnen verwendete Mailserver ein offenes Relay ist, könnte dies ein Grund sein, zusätzliche Spam-Punkte hinzuzufügen. Stellen Sie daher sicher, dass Sie ein geschlossenes Relay verwenden (z. B. der von Ihnen verwendete Mailserver lässt nicht zu, dass E-Mails an nicht authentifizierte Benutzer gesendet werden)
  4. Überprüfen Sie, ob der Mailserver, von dem Sie senden, nicht auf einer Blacklist steht ( Ссылка bietet ein großartiges Tool);
  5. Verwenden Sie die Nachrichtenkopfzeilen in Gmail, um herauszufinden, ob Google Mail einen Grund sieht, Ihrer Nachricht Spam-Punkte hinzuzufügen (Howto: Ссылка ). Dort können Sie herausfinden, ob Ihr SPF funktioniert (indem Sie nach 'spf = pass' suchen). Dies könnte auch für Hotmail funktionieren, wenn Ihre E-Mail in den Spam-Ordner delegiert würde.
  6. Eine der vielen Regeln, die Spamfilter anwendet, sind Keyword-Checks (bei denen ich denke, dass Ihre Mail einige davon enthält), die Menge an Text und so. Stellen Sie sicher, dass die Gesamtqualität Ihrer Nachricht gut ist;
  7. PHPMailer verwendet standardmäßig die Mail-Funktion von PHP. Du kannst dies zu sendmail ändern ( $mail->isSendmail(); , funktioniert wahrscheinlich nicht unter Windows, wenn sendmail nicht richtig eingerichtet ist) oder überprüfe die Einstellungen deiner php.ini, welcher Mailserver benutzt wird (benutze ini_set('SMTP', 'yourhost.com'); um zu überschreiben, aber dies funktioniert nur unter Windows so weit ich weiß).
royarisse 27.05.2015 08:56
quelle

Tags und Links