2016-09-27 2 views
2

Ich möchte mail() von PHP arbeiten in meinem Windows Server 2012 R2. Zu diesem Zweck habe ich zuerst SMTP installiert, indem ich this page folgte. Eine Sache, die mich verwirrt, ist Full-qualified domain name. WIN-RFELH8GM0KN ist, was es standardmäßig vorschlägt. Mein Server hostet mehrere Websites, weiß jemand, welche Webseite ich hier angeben soll?Mail von PHP, DNS-Anfrage abgelaufen, und FQDN

Ich habe dies nicht geändert, als Konsequenz mail www.google.com in nslookup gibt DNS request timed out. zurück So ist es ein Fehler?

enter image description here

Von der Ursache, meine test.php nicht die Mail an:

<?php 
mail('[email protected]', 'title', 'content'); 
?> 

Könnte mir jemand helfen?

Update 1 Im Anschluss an die Antwort von @LittleAI, begann ich SMTP, aber DNS request timed out ist immer noch da:

enter image description here

Update 2 Hier php.ini ist:

enter image description here

telnet localhost 25 gibt die folgenden zurück:

enter image description here

Update 3 Hier war ein Test, der gut funktioniert: Ich habe den Test Mail im Posteingang von [email protected] erhalten. Wenn ich jedoch den Test in Update 1 wiederholen, gibt es immer noch DNS requested time out.. Und test.php kann immer noch nicht die E-Mail senden ...

enter image description here

Update 4 Ich habe erkannt, dass in the page I followed ist es mail.vsysad.com unter nslookup (ich dachte, es mail vsysad.com war, deshalb habe ich versucht, die mail www.google.com tat macht keinen Sinn). So funktioniert es auch in meinem Server, und es gibt keine DNS request timed out.

enter image description here

Dann habe ich doppelt php.ini geprüft, erkannte ich, dass sendmail_from nicht unkommentiert war. So unkommentiert ich es und setzte sendmail_from = [email protected], als Folge, mail() von PHP funktioniert jetzt, so dass das Problem gelöst wird, obwohl ich immer noch nicht verstehen FQDN und den Standardwert (dh WIN-RFELH8GM0KN) ...

Antwort

0

Das erste, was mir aufgefallen ist, ist, dass Ihr virtueller SMTP-Dienst in IIS nicht in einem Startzustand ist, so dass dies ein Problem verursachen würde. Stellen Sie sicher, dass sich dieser Dienst vor dem Testen in einem Startzustand befindet.

Der FQDN-Name wird hauptsächlich für das SMTP-Banner verwendet, das dem Absender bei der Verbindung über Port 25 mit Ihrem Server angezeigt wird.

Es lohnt sich vielleicht, die DNS-Rolle auf Ihrem Server zu installieren und eine Forward-Lookupzone zu erstellen, die auf eine gefälschte Domain verweist, z. B. test.com, und einen Eintrag in dieser Zone namens SMTP mit der IP Ihres Servers zu erstellen. Stellen Sie sicher, dass der Server dann 127.0.0.1 als DNS-Provider verwendet, damit er den Datensatz überprüfen kann, bevor er die Antwort an root-Hints/externe DNS-Weiterleitung delegiert.

Sie benötigen einen SMTP-Anforderung zu tun Telnet über SMTP zu bestätigen, lauscht auf Port 25. Sie können dies tun, indem Sie die localhost IP-Adresse (127.0.0.1), wie unten gezeigt:

telnet 127.0.0.1 25 
    helo test.com 
    MAIL FROM: ****YOUR EMAIL ACCOUNT**** 
    RCPT TO: ****SENDERS ADDRESS**** 
    DATA 

Sie würden wahrscheinlich die E-Mail von Ihrem Relay an GMAIL aufgrund von SPF Record nicht empfangen, die nur bestimmte IP/Hostnamen als google.com senden kann, aber zum Testen sollten Sie sehen, dass Ihr Server die Mail empfängt, nachdem Daten eingegeben wurden.

Hier ist die Anleitung zur Verwendung von Telnet auf Ihrem Server. Stellen Sie nur sicher, dass Sie die Telnet-Funktion installiert haben, da diese nicht standardmäßig installiert ist.

http://www.yuki-onna.co.uk/email/smtp.html

Zusätzlich:

telnet localhost 25 

Nachdem die SMTP-Banner in den folgenden Befehl ein, aber darauf achten, keine Fehler zu machen oder sonst werden Sie wahrscheinlich Ihre sesssion beginnen müssen alle über nochmal.

helo test.com 

Sie sollten dann eine 250-Antwort finden Sie in der Server sagen

hören

Der Typ der folgende:

MAIL FROM: [email protected] 

mit OK antworten sollte. Wenn ja, dann geben Sie:

RCPT TO: ***YOU EMAIL ADDRESS OF CHOICE**** 

Auch hier sollte es mit OK antworten. Ist dies der Fall, geben Sie Folgendes ein:

DATA 

Drücken Sie nach dem DATA-Befehl die Eingabetaste. Ihr jetzt in den Körper der E-Mail. Zu Testzwecken verpassen wir die Betreffzeile und fügen dem Körper nur einige Daten hinzu.

This is a test email. 

dann die E-Mail müssen Sie füllen eine leere Zeile durch Drücken von Return, dann einen Punkt, dann wieder zurück, wie so verlassen.

***BLANK LINE**** 
    . 
    ***Hit Return**** 

Screenshot alle Befehle, aber Sie können die E-Mail löschen, damit ich die Ausgabe sehen kann.

+0

Vielen Dank für Ihre Antwort, aber der Teil außer dem Starten von SMTP ist wirklich schwer zu verstehen. Ich habe das SMTP gestartet, aber der Fehler ist immer noch da (siehe Update im OP). Ich möchte einfach 'mail' von' php' arbeiten lassen, könntest du mir die zwingenden Schritte sagen, um das zu realisieren? – SoftTimur

+1

Ich werde helfen und ich bin sicher, wir werden das sortiert bekommen. Können Sie bestätigen, ob Ihre PHP.ini-Einstellungen auf Ihrem Windows-Server für die Verwendung von localhost konfiguriert sind?[Wie konfiguriere ich PHP SMTP Mail Einstellungen Link] (http://www.php.net/manual/en/mail.configuration.php) – Kitson88

+0

Können Sie auch bestätigen, ob der Server Port 25 überwacht? Sie können dies tun, indem Sie den folgenden Befehl in der Eingabeaufforderung eingeben "telnet localhost 25" – Kitson88