So senden Sie ein E-Mail von localhost mit PHP auf Linux
Ich weiß, dass das senden von e-mail von "localhost" auf Windows, müssen Sie ändern Sie den SMTP-server in php.ini dies ist jedoch nur gültig unter Windows:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
Also, was ich tun sollte, um in der Lage sein, das senden von e-mails von Linux-OS?
- In linux standardmäßig ist keine Konfiguration erforderlich, um E-mail senden. Was ist die Ausgabe des php-mail-Funktion ?. Versuchen E-mail-Befehl im terminal und die check-mail ist korrekt konfigurierten linux.about.com/od/commands/l/blcmdl1_Mail.htm
- AFAIK, E-mail-Befehl sendet E-Mail erhalten, in gleicher Weise wie outlook tun, würde es sich nicht um ein E-Mail-server
- mail($to,$subject,$message,$headers); gibt nichts, kein Fehler, aber wenn $senden = mail($to,$subject,$message,$headers); echo $send; es zeigt wieder nichts, also es bedeutet, dass es FALSCH ist
- zu installieren, müssen Sie ein E-mail-server wie sendmail oder exim
- ich denke, das wird dir helfen viel besserer Weg, um E-Mail senden, indem Sie mithilfe Ihres Google Mail-Anmeldeinformationen. kvcodes.com/2016/03/send-e-mail-localhost-ubuntu-php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, die Installation ssmtp vielmehr als die Installation einer vollständigen mail-server wie postfix. Ob dies nur eine lokale test-Umgebung, die Sie wahrscheinlich nicht benötigen einen MTA. ssmtp ist sehr einfach einzurichten-man sollte nur geben Sie Ihre smtp-Anmeldeinformationen für ein remote-server. Gibt es ein tutorial hier.
Wenn Sie Debian und Varianten davon (*buntu, etc.), Sie können eine E-mail-server durch ausführen von
sudo tasksel install mail-server
, die sollten setzen Sie sich mit grundlegenden E-Mail-Funktionen. Sie können dies testen, indem Sie ausführen in die Befehlszeile einecho 'body' | sendmail [email protected]
oder wie andere erwähnt haben,mail($to, $subj, $msg)
in PHP.Dieser arbeitete für mich auf Linux Mint 17 zum senden von E-Mails von localhost:
Senden Sie E-mail von localhost (WAMP, XAMP oder der LAMPE), die Sie verwenden können, PHPMailer-Paket (Download PHPMailer von hier).
Zuerst müssen Sie Bearbeiten Sie die "php.ini" Zu finden, diese Datei Anzeige der phpinfo mit den folgenden code aus dem WAMP-server. Erstellen Sie eine php-Datei und fügen Sie diesen Inhalt.
Dort Suche nach "Loaded Configuration File" wird der Pfad zu deiner php.ini.
In dieser Datei entfernen Sie das"; " (Semikolon) gegeben extension=php_openssl.dll.
Nach dem herunterladen PHPMailerX.X.X-Paket
Entpacken->Kopieren Sie den vollständigen Ordner in Ihrem Projekt-Ordner.
Im test-Ordner gibt es eine Datei namens testemail.php.
Ändern Sie die parameter, wie Ihr benötigt. (Beispiel unten).
Dann in der browser-Typ 127.0.0.1/PHPMailer/test/testemail.php.
Dann wird sich zeigen, erfolgreich " - Meldung wenn E-Mail gesendet, sonst wird es geben, Fehlermeldung.
Beispiel:
Setup von sendmail oder exim. Suche im Paket-manager für die option, und installieren Sie Sie. Senmail ist üblich und einrichten sollte den job tun. Der mail-Befehl unter linux ist ein E-Mail-Client oder mail-user-agent ein Mail User Agent (MUA) ist eine Anwendung, die verwendet wird zum senden und empfangen von E-Mails, die mehr von einem client. In der Erwägung, dass mail transfer agent überträgt E-Mails von einem computer zum anderen über ein client–server-Anwendung-Architektur.
Sollte es ein stub in Ihrer php.ini-Datei bereits, so etwas wie:
Überprüfen, dass der Befehl angegeben, existiert auf Ihrem Dateisystem und Sie haben (installiert und) konfiguriert die MTA korrekt.
Wenn Sie haben nicht bereits ein MTA eingerichtet, es gibt viele MTAs verfügbar für Linux-Systeme, würde ich empfehlen, sendmail (comples/schwierig zu konfigurieren, aber die großartige Leistung und die beeindruckende Flexibilität) oder postfix (einfacher zu konfigurieren, gute Sicherheit out of the box).
Lernen, wie die 'mail' - cli-client, oder führen Sie eine andere E-Mailprogramm auf dem server zu trennen Konfiguration des MTA von PHP-integration.
Zu installieren, müssen Sie ein MTA wie sendmail (Einige Distributionen, wie Debian bevorzugen scheinen exim oder postfix vielleicht).
Durch die PHP SMTP-Implementierung ist eine schlechte Idee, weil es wird nicht hinsichtlich der retry-Anforderung der RFC5321 "4.5.4.1. Senden Strategie: mail
nicht übertragen werden, MÜSSEN unverzüglich in die Warteschlange gestellt werden und in regelmäßigen Abständen
wiederholt, indem der sender".
Diese auf der Verletzung einer RFC - "MUSS" - Anforderung in der Regel reduziert die Robustheit und stören den korrekten zusammenspiel in den meisten Fällen. Dies ist der Grund, warum Sie brauchen, um einen lokalen MTA (unter Linux oder Windows). Im Idealfall müssen Sie eine nicht-SMTP-Mechanismus für die übermittlung der Nachrichten an den MTA, der ist, warum wird PHP ausgeführt werden soll "sendmail" - E-mail zu senden. Es neigt dazu dies standardmäßig zu tun, wenn ein MTA installiert ist.