2008-09-02 2 views
6

Ich bin mir nicht sicher, ob ich die korrekte Terminologie hier verwende, also sei nachsichtig.Funktioniert die mail() - Funktion von PHP, wenn ich den MX-Eintrag nicht besitze?

Ich habe gerade eine Website mit einem Kontaktformular, die eine E-Mail mit der PHP mail() -Funktion sendet. Einfach genug. Die Live-Site sendet jedoch nicht die E-Mail, die Testwebsite. Es ist also nicht mein Code.

Es ist ein gemeinsamer Host und wir haben eine andere Seite, die die gleiche Funktion hat, die perfekt funktioniert, also ist es nicht der Server.

Der einzige Unterschied zwischen den beiden ist, dass die Seite, die nicht funktioniert, nur den Namenserver hat, der auf uns zeigt, und so berührt der MX-Eintrag nie unseren Server.

Also meine Frage ist, könnte jemand bitte bestätigen, dass die Mail() Funktion wird nicht funktionieren, wenn wir den MX-Eintrag nicht auf unseren Server zeigen. Danke

Antwort

2

Hey Leute Danke für die Antworten, es ist sehr geschätzt.

Nachdem ich das Problem für ein paar Monate ignoriert habe, ist es wieder aufgetaucht, ich habe jedoch die Antwort auf meine Probleme gefunden.

Erstens, wie Sie Antworten vorgeschlagen, funktionierten PHP und die mail() - Funktion wie erwartet. Die Mail wurde gesendet.

Das Problem liegt, wenn die E-Mail gesendet wird, es einfach davon ausgeht, dass, weil es von mydomain.com zu *@mydomain.com E-Mail gesendet wird, dass die E-Mail selbst auf dem gleichen Server gehostet wird, und stattdessen dort gesendet wird ignoriert den MX-Eintrag.

OK, es ist ein bisschen komplizierter als das, aber das ist der allgemeine Jist.

Bearbeiten: Found eine bessere Version des Themas sendmail and MX records when mail server is not on web host.

0

Ja, Sie könnten was immer Sie wollen in das Feld "von" einfügen und es würde immer noch funktionieren.

3

Ja. Es wird gut funktionieren. Ich habe ein PHP-Skript, das die Funktion mail() verwendet, wobei die MX-Datensätze auf Google Apps eingestellt sind.

Wenn sich die beiden Skripts auf unterschiedlichen Hosts befinden (in Ihrem Post ist dies etwas unklar), stellen Sie sicher, dass der Host einige der benutzerdefinierten Header nicht blockiert. Ich hatte Probleme damit, wenn ich mein Skript erstellte, aber das Entfernen aller außer dem From-Header behob das Problem.

2

Einige Hosts (Godaddy ist das Schlimmste) blockieren Ihre Verwendung von sendmail und mail().

Ich benutze SMTP im Allgemeinen, um E-Mails von meinem PHP-Anwendungen zu senden und mit ist es super einfach. Viele Anwendungen verwenden ältere Versionen von PHPMailer und manchmal hilft das Aktualisieren. Es ist auch leicht genug, um auch kurze Skripts schnell hinzuzufügen.

1

Die Funktion mail() sendet E-Mail von dem Server, der das Skript hostet. Da viele Shared-Hosting-Provider separate Mail-Server hosten und die mail()-Funktion keine Authentifizierung unterstützt, blockieren viele Shared-Hosting-Provider diese.

1

Wenn die Site SPF verwendet, denken Sie daran, die sendende Site in Ihren SPF-Datensatz aufzunehmen. Für weitere Informationen siehe here.

Verwandte Themen