$from = "[email protected]";
$headers = "From:" . $from;
echo mail ("[email protected]" ,"testmailfunction" , "Oj",$headers);
Ich habe Probleme beim Senden von E-Mails in PHP. Ich erhalte eine Fehlermeldung:SMTP server response: 530 SMTP authentication is required
.
Ich hatte den Eindruck, dass Sie zur Überprüfung E-Mails ohne SMTP senden können. Ich weiß, dass diese Mail wahrscheinlich herausgefiltert wird, aber das spielt im Moment keine Rolle.
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com
Dies ist das Setup in der php.ini
Datei. Wie soll ich SMTP einrichten? Gibt es SMTP-Server, für die keine Überprüfung erforderlich ist, oder muss ich selbst einen Server einrichten?
mail()
Funktionen.'phpmailer_init'
Action-Hook konfiguriert werden kann . Es ist eine bequeme Möglichkeit, WordPress für SMTP-Mail oder Amazon SES (das SMTP-Verbindungen unterstützt) einzurichten.oder lesen Sie weiter , um weitere Informationen zu erhalten .
quelle
php mail()
Funktionsprobleme - 2017 - sollte PHPMailer oder eine andere Ressource von Drittanbietern nicht herunterladen müssen - dankeFür Unix-Benutzer verwendet mail () tatsächlich den Befehl Sendmail , um E-Mails zu senden. Anstatt die Anwendung zu ändern, können Sie die Umgebung ändern. msmtp ist ein SMTP-Client mit Sendmail-kompatibler CLI-Syntax, dh er kann anstelle von Sendmail verwendet werden. Es erfordert nur eine kleine Änderung an Ihrer php.ini.
Dann kann sogar die Funktion lowly mail () mit SMTP-Güte arbeiten. Dies ist sehr nützlich, wenn Sie versuchen, eine vorhandene Anwendung mit Mail-Diensten wie sendgrid oder mandrill zu verbinden, ohne die Anwendung zu ändern.
quelle
mail()
zu etwas, das SMTP unterstützt. Danke dir!Das Problem ist, dass die PHP-
mail()
Funktion eine sehr eingeschränkte Funktionalität hat. Es gibt verschiedene Möglichkeiten, E-Mails von PHP aus zu senden.mail()
verwendet den SMTP-Server auf Ihrem System. Es gibt mindestens zwei Server, die Sie unter Windows verwenden können: hMailServer und xmail . Ich habe mehrere Stunden damit verbracht, sie zu konfigurieren und einzurichten. Erstens ist einer meiner Meinung nach einfacher. Derzeit arbeitet hMailServer unter Windows 7 x64.mail()
Verwendet den SMTP-Server auf einer Remote- oder virtuellen Maschine unter Linux. Natürlich erlaubt ein echter Mail-Dienst wie Google Mail keine direkte Verbindung ohne Anmeldeinformationen oder Schlüssel. Sie können eine virtuelle Maschine einrichten oder eine in Ihrem LAN verwenden. Die meisten Linux-Distributionen haben einen sofort einsatzbereiten Mailserver. Konfigurieren Sie es und haben Sie Spaß. Ich verwende Standard-Exim4 unter Debian 7, das die LAN-Schnittstelle überwacht.Unabhängig davon, welche Wahl Sie treffen, empfehle ich Ihnen, eine Abstraktionsschicht zu verwenden. Sie können die PHP-Bibliothek auf Ihrem Entwicklungscomputer unter Windows verwenden und einfach
mail()
auf einem Produktionscomputer unter Linux arbeiten. Mit der Abstraktionsschicht können Sie E-Mail-Treiber je nach System austauschen, auf dem Ihre Anwendung ausgeführt wird. Erstellen Sie eine abstrakteMyMailer
Klasse oder Schnittstelle mit einer abstraktensend()
Methode. Erben Sie zwei KlassenMyPhpMailer
undMySwiftMailer
. Implementieren Sie diesend()
Methode auf geeignete Weise.quelle
Hier ist eine Möglichkeit, dies mit PHP PEAR zu tun
Wenn Sie Google Mail SMTP verwenden, müssen Sie SMTP in Ihrem Google Mail-Konto unter Einstellungen aktivieren
EDIT: Wenn Sie Mail.php auf debian / ubuntu nicht finden können, können Sie php-pear mit installieren
Installieren Sie dann die Mail-Erweiterung:
Dann sollten Sie es laden können, indem Sie es einfach
require_once "Mail.php"
hier finden:/usr/share/php/Mail.php
quelle
Es gibt einige SMTP-Server, die ohne Authentifizierung funktionieren. Wenn der Server jedoch eine Authentifizierung erfordert, kann dies nicht umgangen werden.
Die in PHP integrierten Mail-Funktionen sind sehr eingeschränkt. Die Angabe des SMTP-Servers ist nur in Windows möglich. Unter * nix
mail()
werden die Binärdateien des Betriebssystems verwendet.Wenn Sie E-Mails an einen beliebigen SMTP-Server im Internet senden möchten, sollten Sie eine Bibliothek wie SwiftMailer verwenden . Auf diese Weise können Sie beispielsweise die ausgehenden Server von Google Mail verwenden.
quelle
In Fällen, in denen Sie eine Wordpress-Site unter Linux hosten und Serverzugriff haben, können Sie einige Kopfschmerzen sparen, indem Sie msmtp installieren, mit dem Sie über SMTP von der Standardfunktion php mail () aus senden können. msmtp ist eine einfachere Alternative zu Postfix, die etwas mehr Konfiguration erfordert.
Hier sind die Schritte:
Installieren Sie msmtp
Erstellen Sie eine neue Konfigurationsdatei:
... mit folgenden Konfigurationsinformationen:
Sie müssen die Konfigurationsdaten ersetzen, die durch alles in "<" und ">" dargestellt werden (einschließlich, entfernen Sie diese). Verwenden Sie für Host / Benutzername / Passwort Ihre normalen Anmeldeinformationen, um E-Mails über Ihren E-Mail-Anbieter zu senden.
Sagen Sie PHP, dass es es verwenden soll
Fügen Sie diese einzelne Zeile hinzu:
Eine vollständige Dokumentation finden Sie hier:
https://marlam.de/msmtp/
quelle