Tutorial PHP Mailer
Tutorial PHP Mailer
com/phpmailer-tutorial/
PHPMailer
Das Lernen, wie man E-Mails sendet, wird deinen PHP-Code auf die nächste Stufe heben. Du wirst in der Lage sein, einen Alarm zu schreiben.
Daemon, erhalten Sie eine E-Mail, wenn jemand versucht sich anzumelden und vieles mehr.
Dieses Tutorial deckt alles ab, was Sie wissen müssen: die Installationsschritte, die Klassenfunktionen, wie man SMTP verwendet
Authentifizierung (einschließlich Gmail), wie man Fehler behandelt und mehr. Sie werden auch viele Codebeispiele finden.
(Sie möchten diese Seite wahrscheinlich zu Ihren Lesezeichen hinzufügen, um später hierher zurückzukehren.)
PHPMailer bietet viele Funktionen über die PHP-Kernfunktion mail() hinaus, einschließlich SMTP SSL-Verschlüsselung
und Authentifizierung, HTML-Nachrichten, Dateianhänge und mehr.
Darüber hinaus ist PHPMailer viel einfacher zu verwenden als mail() und bietet eine saubere, lesbare objektorientierte
Syntax.
Lassen Sie uns genauer betrachten, warum Sie PHPMailer anstelle von mail() oder anderen Drittanbieterbibliotheken verwenden sollten.
Das erste ist, dass mail() auf das E-Mail-Subsystem des Servers angewiesen ist, um zu funktionieren. Das bedeutet, dass wenn Sie ändern möchten …
Einige Einstellungen wie der SMTP-Server oder die Authentifizierungsparameter müssen systemweit vorgenommen werden.
Das ist normalerweise ein ziemlich schwieriger Vorgang, und es sei denn, Sie haben einen dedizierten Server oder verwenden eine lokale PHP.
Entwicklungsumgebung, wahrscheinlich dürfen Sie es nicht einmal tun.
Das macht es auch fast unmöglich, verschiedene Konfigurationen gleichzeitig zu verwenden, zum Beispiel mehrere zu benutzen.
SMTP-Konten und das programmatische Umschalten zwischen ihnen.
Wie Sie in einer Minute sehen werden, ist es mit PHPMailer sehr einfach, jeden Parameter dynamisch direkt in Ihrem
PHP-Skript.
Der zweite Grund ist, dass mail() keine erweiterten Funktionen bietet.
mail() ist in Ordnung für das Senden einfacher, unformatierter E-Mails, aber es ist sehr begrenzend, wenn Sie mehr tun müssen als nur das.
Das. Anhänge hinzuzufügen oder HTML-E-Mails zu senden, ist beispielsweise mit mail() sehr schwierig, während es mit
PHPMailer ist nur eine Frage einer einzigen Codezeile.
GIBT ES PHPMAILER-ALTERNATIVEN?
Ja, es gibt andere Bibliotheken wie Zend Mail, SwiftMailer und Zeta Components Mail, aber PHPMailer ist normalerweise
die erste Wahl aufgrund ihrer Beliebtheit.
Natürlich, wenn Sie bereits mit einer anderen Mail-Erweiterung vertraut sind und diese gut für Sie funktioniert, können Sie einfach dabei bleiben.
damit.
Aber wenn Sie anfangen möchten, einen von ihnen zu verwenden und entscheiden müssen, für welchen Sie sich entscheiden, ist PHPMailer
Wahrscheinlich die beste Wahl, weil es die am häufigsten verwendete ist.
Andere Erweiterungen wie Zend Mail, SwiftMailer oder Zeta Components Mail sind wahrscheinlich genauso gut wie PHPMailer.
aber schau dir die Google-Suchergebnisse für "php mail library" an:
Wie Sie deutlich sehen können, dominiert PHPMailer die ersten Ergebnisse. Das bedeutet jedoch nicht unbedingt, dass PHPMailer
besser als andere Erweiterungen, aber das bedeutet nicht, dass es die beliebteste ist.
Der Hauptgrund, warum Sie die am häufigsten verwendete Bibliothek wählen möchten, ist der Support: Je weiter verbreitet ein Stück wird.
Je mehr Software vorhanden ist, desto einfacher ist es, Hilfe und Beispiele online zu finden.
Ich sollte auch erwähnen, dass ich seit ein paar Jahren PHPMailer für die Arbeit benutze und bis zu 100 versende.
E-Mails pro Tag damit. Ich benutze es, um Alerts mit PHP-Dämonen zu senden, um den Speicherverbrauch meiner Skripte zu überwachen und um
Warnungen erhalten, wenn SQL-Injection-Angriffe erkannt werden.
Soweit ich mich erinnere, hatte ich nie Probleme damit, also stehen die Chancen gut, dass du auch keine haben wirst.
Ältere Versionen von PHPMailer (bis Version 5) boten eine "[Link]"-Datei an, und alle Sie
was nötig war, war es, es in dein Skript einzufügen.
Ab Version 6 wird diese Datei jedoch nicht mehr bereitgestellt. Um die PHPMailer-Klasse verfügbar zu machen
In deinem Skript hast du zwei Optionen:
1. Verwenden Sie Composer, um PHPMailer herunterzuladen und automatisch eine Autoloader-Datei zu erstellen;
2. Laden Sie den PHPMailer-Quellcode manuell herunter und fügen Sie die erforderlichen Dateien selbst hinzu.
Die erste Option ist die empfohlene, da Composer sich um alle Downloads, Updates und
Abhängigkeit überprüfen Schritte. Dies ist besonders nützlich, wenn Sie auch andere Bibliotheken installieren müssen, wie diejenige
benötigt für XOAUTH2 Google-Authentifizierung (ich werde Ihnen später erzählen, wie man XOAUTH2 mit Google verwendet)
Beitrag).
4 von 22 24.09.2018
PHPMailer vollständiges Tutorial (2018): E-Mails mit PHP senden URL cannot be translated into text.
Die zweite Option kann jedoch nützlich sein, wenn Sie aus irgendeinem Grund Composer nicht installieren möchten, zum Beispiel
Wenn Sie PHPMailer in einer Testumgebung verwenden.
Lassen Sie uns beide Installationsoptionen ansehen, beginnend mit derjenigen mit Composer.
Composer und PHPMailer unter Windows installieren (wenn Sie XAMPP, WAMP usw. verwenden)
Composer ist ein Abhängigkeitsmanager für PHP. Er hilft Ihnen, PHP herunterzuladen, zu installieren und auf dem neuesten Stand zu halten.
Erweiterungen und Bibliotheken.
1. Stellen Sie zunächst sicher, dass Sie eine Webentwicklungsumgebung installiert haben (XAMPP, WAMP, EasyPHP)
etc.) da Composer ein PHP-Executable benötigt, um zu arbeiten;
2. Laden Sie die Composer-Installationsdatei hier herunter (unter "Windows Installer") und führen Sie sie aus;
3. Befolgen Sie die Installationsanweisungen und stellen Sie sicher, dass Sie eine PHP-Ausführungsdatei auswählen können:
4. Sobald die Installation abgeschlossen ist, können Sie die Composer-Befehlszeilentools verwenden, um zu installieren.
PHPMailer.
Jetzt müssen Sie ein Terminal öffnen (indem Sie "[Link]" ausführen oder nach "Eingabeaufforderung" im Start suchen)
Menü) und navigieren Sie zu dem Verzeichnis, in dem Sie die Composer-Pakete einschließlich PHPMailer installieren möchten (wenn
Wenn Sie Hilfe bei der Verwendung des Terminals benötigen, hinterlassen Sie einfach einen Kommentar unten.
Zum Beispiel verwenden wir "C:\xampp\composer" als Installationsverzeichnis. Erstellen Sie zuerst das Verzeichnis und kehren Sie dann zurück.
Zum Terminal und wechseln Sie in das Verzeichnis, indem Sie „cd C:\xampp\composer“ eingeben.
Führen Sie dann einfach den Befehl aus: „composer require phpmailer/phpmailer“ wie im Folgenden gezeigt
Bild:
Composer wird eine "[Link]"-Datei generieren, die Sie verwenden können, um die installierten Bibliotheken einzubinden, in diesem Fall
PHPMailer. Diese Datei befindet sich standardmäßig im Verzeichnis "vendor", obwohl Sie Composer konfigurieren können.
einen anderen Verzeichnisnamen zu verwenden.
Außerdem, da nowPHPMailer seine Klassen jetzt im Namespace PHPMailer\\PHPMailer definiert, ist es eine gute
Idee, die use-Direktive am Anfang Ihres Skripts zu verwenden, um PHPMailer\PHPMailer zu aliasieren.
\PHPMailerandPHPMailer\PHPMailer\Exceptionklassen:
<?php
Sobald Composer installiert ist, können Sie das Composer-Befehlszeilen-Tool verwenden, um PHPMailer zu installieren.
ein Verzeichnis Ihrer Wahl, genauso wie wir es bereits bei der Windows-Installation gesehen haben (Sie können dasselbe verwenden
Befehl):
Sie können die "[Link]"-Datei einfügen und die Namensraum-Aliase genau wie bei derWindows-Installation festlegen.
(Natürlich den Dateipfad ändern).
Sie können die ZIP-Datei mit dem Quellcode von der PHPMailer-Homepage herunterladen, indem Sie auf "Klonen oder
Klicken Sie auf die "grüne Schaltfläche" (rechts) und wählen Sie dann "ZIP herunterladen". Entpacken Sie das Paket im Inneren der
Verzeichnis, in dem Sie die Quelldateien speichern möchten.
Dann müssen Sie nur die benötigten Klassen-Dateien in Ihr PHP-Skript einfügen.
Mindestens möchten Sie die Haupt-PHPmailer-Klasse, die Ausnahmeklasse (für die Fehlerbehandlung) und
Wahrscheinlich auch die SMTP-Klasse, wenn Sie sich mit einem SMTP-Server für die E-Mail-Zustellung verbinden möchten.
Du solltest auch die Namensraumas alias festlegen, genau wie du es zuvor bei der Composer-Installation gesehen hast.
erforderlich 'C:\PHPMailer\src\[Link]';
require 'C:\PHPMailer\src\[Link]';
erfordern 'C:\PHPMailer\src\[Link]';
Wenn Sie die Composer-Installationsmethode wählen, können Sie Ihre PHPMailer-Installation aktuell halten, indem Sie
Führen Sie den Befehl „update“ für Composer aus.
Die Syntax ist sowohl unter Windows als auch unter Linux gleich. Gehen Sie einfach zum Installationsverzeichnis (dort, wo Sie den Befehl ausgegeben haben.
Installationsbefehl ausführen und das Update durchführen:
Wenn Sie sich entscheiden, Composer nicht zu verwenden, müssen Sie die neue ZIP-Datei manuell von der
PHPMailer-Homepage und die vorherige Installation überschreiben (die gleichen Schritte befolgen).
In jedem Fall ist es eine gute Idee, die Änderungsprotokolldatei und das Update zu überprüfen, bevor Sie Ihre Installation aktualisieren.
Notizen, nur um sicherzustellen, dass Ihre PHP-Anwendungen mit der neuen PHPMailer-Version kompatibel sind.
Lass uns ein einfaches Beispiel ansehen, damit du verstehst, wie diese Klasse funktioniert (mach dir vorerst keine Sorgen um die Details,
wir werden sie im nächsten Kapitel behandeln).
In allen Beispielen werde ich den Installationspfad von Windows verwenden, da ich an meinem lokalen XAMPP arbeite.
Entwicklungsumgebung. Wenn Sie Linux verwenden, ändern Sie einfach die Include-Pfade entsprechend.
<?php
erfordere 'C:\xampp\composer\vendor\[Link]';
versuche {
$mail->addAddress('palpatine@[Link]', 'Kaiser');
$mail->Subject = 'Force';
$mail->send();
}
catch (Exception $e)
{
echo $e->Fehlermeldung();
}
catch ( Exception $e)
{
echo $e->getMessage();
}
Sieh dir an, wie PHPMailer eine schöne und einfache OOP-Syntax verwendet?
Das Konstruktorargument der Klasse ist auf TRUE gesetzt, um PHPMailer zu veranlassen, Ausnahmen für die Fehlerberichterstattung zu verwenden.
Wenn Sie es vorziehen, keine Ausnahmen zu verwenden, lassen Sie das Argument einfach weg (oder setzen Sie es auf FALSE). In diesem Fall müssen Sie überprüfen
Die return-Werte der send()-Methode und suchen Sie nach der Fehlermeldung im $ErrorInfo-Attribut:
<?php
require 'C:\xampp\composer\vendor\[Link]';
$mail->addAddress('palpatine@[Link]', 'Kaiser');
$mail->Subject = 'Force';
if (!$mail->send())
{
echo $mail->FehlerInfo;
}
Es ist interessant zu sehen, wie dieses Skript aussehen würde, wenn Sie die mail()-Funktion verwenden würden:
<?php
Im vorherigen grundlegenden Beispiel haben wir PHPMailer nicht gesagt, dass es einen bestimmten SMTP-Server verwenden soll. In diesem Fall
PHPMailer verwendet das E-Mail-Subsystem des Servers, genau wie mail().
Natürlich möchten Sie stattdessen Ihre eigenen SMTP-Verbindungsparameter verwenden. Keine Sorge: Wir werden dies in einem.
Minute.
Jetzt sehen wir uns an, wie man alle Funktionen der PHPMailer-Klasse nutzen kann.
Möchtest du mit mir und anderen Entwicklern über PHPMailer, PHP und Webentwicklung sprechen? Tritt meinem
Facebook-Gruppe jetzt: Alex PHP Café
Sobald Sie ein PHPMailer-Objekt erstellt haben, wie in den vorherigen Beispielen zu sehen, können Sie die umfangreiche
Die PHPMailer-Klasse bietet Funktionen, um alle erforderlichen E-Mail-Parameter und -Attribute festzulegen.
Das ist wahrscheinlich das erste, was Sie tun möchten. Diese Methode nimmt die Absenderadresse als ersten Parameter,
während der zweite Parameter optional ist und den Absendernamen festlegt, wie er von den Empfängern gesehen wird.
$mail->addAddress('palpatine@[Link]', 'Kaiser');
Zwang
Der Nachrichteninhalt kann einfachen Text und HTML-Code enthalten. Wenn Sie möchten, dass Ihre E-Mail als
HTML, stellen Sie sicher, dass Sie den nächsten Punkt lesen.
$mail->isHTML(TRUE);
<html>Es gibt eine große Störung in der <strong>Macht</strong>.</html>
$mail->AltBody = 'There is a great disturbance in the Force.';
Sie können Dateien an Ihre E-Mail mit der Funktion addAttachment() anhängen.
Diese Funktion nimmt zwei Parameter: der erste ist der Dateipfad, und der zweite (optional) ist der Dateiname.
dass der Empfänger sehen wird. Wenn nicht festgelegt, wird der gleiche Dateiname der lokalen Datei verwendet.
Bitte beachten Sie, dass die Datei für den Benutzer, der das PHP-Skript ausführt, lesbar sein muss (dies ist besonders wichtig unter
Linux-Systeme).
$mail->addAttachment('/home/darth/star_wars.mp3', 'Star_Wars_music.mp3');
Sie können angeben, an welcheAdresse der Empfänger bei einerAntwort auf Ihre E-Mail antworten wird. Die Standardadresse ist die
Absenderadresse („Von:“) kann jedoch geändert werden.
Alle CC (Carbon-Copy) und BCC (Blind Carbon-Copy) Empfänger erhalten die E-Mail, aber BCC-Adressen
wird für andere Empfänger unsichtbar sein.
$mail->addCC('admiral@[Link]', 'Flottenadmiral');
$mail->addBCC('luke@[Link]', 'Luke Skywalker');
Im folgenden Beispiel fügen wir zwei Dateien an: die erste enthält die Daten aus einem „Blob“ (binäres) SQL-Feld.
und heißt "db_data.db", das zweite wird aus einem Netzwerkstream (einer PDF-Datei) erstellt und heißt
[Link]
$mysql_data = $mysql_row['blob_data'];
$mail->addStringAttachment($mysql_data, 'db_data.db');
[Link]
$mail->addStringAttachment(file_get_contents($pdf_url), '[Link]');
$mail->msgHTML(file_get_contents('[Link]'), __DIR__);
Lerne, wie man PHPMailer mit diesem vollständigen Tutorial von 2018 verwendet. Klicke um zu twittern.
PHPMailer ermöglicht es Ihnen, die SMTP-Verbindungseinstellungen direkt aus Ihrem PHP-Skript zu konfigurieren, indem Sie die
PHPMailer-Klassenmethoden und -attribute.
Dies ist unglaublich nützlich im Vergleich zu mail(), das stattdessen auf die zugrunde liegende Systemkonfiguration angewiesen ist.
Das folgende Beispiel zeigt, wie Sie einen bestimmten SMTP-Server mit SSL und Authentifizierung verwenden können:
<?php
versuchen {
$mail->isSMTP();
$mail->Host = '[Link]';
WAHR
tls
$mail->Username = 'smtp@[Link]';
$mail->Password = 'iamyourfather';
$mail->Port = 587;
$mail->send();
}
catch (Exception $e)
{
echo $e->Fehlermeldung();
}
catch ( Exception $e)
{
echo $e->getMessage();
}
Natürlich müssen Sie die richtigen Verbindungsparameter verwenden, einschließlich der Verschlüsselungsfähigkeiten des Servers und
der TCP-Port, auf den es hört.
Ein fortschrittlicheres, SMTP-bezogenes Attribut ist das SMTPOptions-Array. Wenn Sie SMTP-Verschlüsselung verwenden,
PHPMailer übergibt dieses Array an die zugrunde liegende PHPstream_context_create() Funktion.
Sie können dasAttribut SMTPOptions verwenden, um erweiterte SSL-Kontextoptionen festzulegen.Während Sie es möglicherweise nicht verwenden müssen.
Die meiste Zeit kann es in einigen Fällen wirklich nützlich sein.
Wenn Sie beispielsweise Ihren eigenen SMTP-Server haben, der ein selbstsigniertes Zertifikat verwendet, ist die SMTP-Verbindung
wird wahrscheinlich aufgrund des Fehlens einer gültigen Signatur einer Zertifizierungsstelle fehlschlagen. Dies ist ein ziemlich häufiges Szenario in
Arbeitsumgebungen.
In diesen Fällen können Sie das SMTPOptions-Attribut verwenden, um PHPMailer (und das PHP SSL-Subsystem) zu informieren, dass
Ignoriere dieses Problem.
Im folgenden Beispiel setzen wir die Parameter verify_peer und verify_peer_name auf FALSE und
den allow_self_signed Parameter auf TRUE setzen, um einige Sicherheitsprüfungen zu deaktivieren:
<?php
versuchen {
$mail->isSMTP();
$mail->Host = '[Link]';
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = 'tls';
$mail->Benutzername = 'smtp@[Link]';
$mail->Password = 'iamyourfather';
$mail->Port = 587;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->send();
}
catch (Ausnahme $e)
{
echo $e->Fehlermeldung();
}
catch ( Exception $e)
{
echo $e->getMessage();
}
Warum sehen Sie sich nicht ein praktisches Video-Beispiel an? Dieses nette Video von Mr. Digital zeigt, wie man einen
PHPMailer-Skript:
SMTP DEBUG
Sie können das SMTPDebug-Attribut setzen, um das Debugging der SMTP-Verbindung auf dem Bildschirm zu aktivieren.
Diese Art von Debugging-Ausgabe kann in der Entwicklungsphase äußerst nützlich sein, da sie Ihnen zeigt, ob ...
Etwas geht schief mit der SMTP-Verbindung.
Beachten Sie, dass die SMTP-Debug-Ausgabe nur zu Debugging-Zwecken verwendet werden sollte, da sie sensible Informationen offenbaren kann.
Daten an entfernte Clients.
Das SMTPDebug-Argument kann auf einen ganzzahligen Wert zwischen 0 (der Standardwert, es wird keine Ausgabe erzeugt) und 4 gesetzt werden.
(Niedrigstufige Informationsausgabe wird angezeigt). Wenn Ihre E-Mails nicht gesendet werden, empfehle ich Ihnen, diesen Wert auf 4 zu setzen und zu sehen
Was passiert:
<?php
versuchen {
$mail->SMTPDebug = 4;
$mail->send();
}
catch (Exception $e)
{
echo $e->errorMessage();
}
catch ( Exception $e)
{
echo $e->getMessage();
}
FEHLERMELDUNGSLOKALISIERUNG
PHPMailer unterstützt die Lokalisierung von Fehlermeldungen. Sie können eine der vielen (derzeit 48) verwenden.
bereits verfügbare Übersetzungen (Sie können die Liste hier finden) oder sogar ein benutzerdefiniertes Set von Sprachen selbst erstellen.
Um die Sprache einzustellen, rufen Sie einfach die Methode setLanguage() auf:
$mail->setLanguage('de');
$mail->setLanguage('klingon', 'C:\PHPMailer\myLanguages\');
Wenn Sie Ihr eigenes Übersetzungsset verwenden möchten, müssen Sie den Pfad zur Übersetzungsdatei als Parameter an die Funktion übergeben.
zweiten Parameter (mit einem nachgestellten Verzeichnis-Trenner). Wenn Sie einen der Standardwerte verwenden, lassen Sie ihn einfach weg.
zweiter Parameter leer.
Ich hoffe, du genießt diesen Guide! Warum teilst du ihn nicht mit deinen Freunden?
Es ist nur 1 Sekunde deiner Zeit und du machst mich glücklich!
$mail->isSMTP();
$mail->Host = '[Link]';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
SMTP-Server verlangen in der Regel, dass sich die Clients mit Benutzername und Passwort authentifizieren, bevor sie ...
erlaubt, Nachrichten zu senden. Auch Googles SMTP tut dies, aber möglicherweise müssen Sie zusätzliche Schritte unternehmen, um dies zu ermöglichen.
Arbeiten.
Die SMTP-Authentifizierungsschritte von Google mit PHPMailer hängen davon ab, ob Sie die Google-Zwei-Schritt-Verifizierung aktiviert haben.
Überprüfung aktiviert oder nicht.
Wenn Sie die Google-Zwei-Schritt-Verifizierung nicht aktiviert haben, können Sie versuchen, Ihren eigenen Benutzernamen zu verwenden (in diesem Fall,
Ihre E-Mail-Adresse) und Passwort, um sich anzumelden:
$mail->isSMTP();
$mail->Host = '[Link]';
$mail->Port = 587;
$mail->SMTPAuth = true;
tls
$mail->Username = 'myusername@[Link]';
$mail->Password = 'mypassword';
Das *könnte* funktionieren, jedoch ist Google sehr misstrauisch gegenüber ungewöhnlichen Anmeldeversuchen und könnte dies ablehnen.
Autorisieren Sie den Authentifizierungsprozess Ihres PHPMailer-Skripts. Dies wird auch in diesem PHPMailer erklärt.
Fehlerbehebungsdokument.
Der SMTP-Server von Google kann den "Client" (in diesem Fall das PHPMailer-Skript) auffordern, sich zuerst im Webbrowser anzumelden.
oder die Anweisungen dieser Seite zu befolgen.
Wenn Sie die 2-Schritt-Verifizierung nicht aktivieren möchten, müssen Sie Google wahrscheinlich sagen, "Weniger sichere Apps zulassen".
Anmeldeversuche für die Authentifizierung von PHPMailer, um akzeptiert zu werden.
Um das zu tun, können Sie diese Anweisungen befolgen oder einfach hierhin gehen, während Sie mit dem Google-Konto angemeldet sind, das Sie möchten.
zu verwenden.
Nachdem Sie Verbindungen von "weniger sicheren Apps" autorisiert haben, können Sie es erneut versuchen und sehen, ob es funktioniert (vielleicht müssen Sie
ein paar Stunden auf die Wirksamkeit der Änderung zu warten).
Wenn es immer noch nicht funktioniert, haben Sie zwei Optionen: Aktivieren Sie die 2-Schritte-Überprüfung und folgen Sie den Anweisungen.
unten oder verwenden Sie den XOAUTH2-Authentifizierungsprozess, wie später in diesem Tutorial beschrieben.
IhreWahl
Wenn Sie die Zwei-Faktor-Authentifizierung aktiviert haben, müssen Sie ein "App-Passwort" erstellen und es verwenden, um sich anzumelden.
PHP, weil Sie den zweiten Authentifizierungsfaktor mit PHPMailer (der die Verwendung von beinhaltet) nicht verwenden können.
eine Authentifizierungs-App oder die Autorisierung des Zugangs mit Ihrem Smartphone).
Ein "App-Passwort" ist eine Zeichenfolge, die Sie verwenden können, um sich ohne den zweiten Authentifizierungsfaktor anzumelden. Um eines zu erstellen, müssen Sie einfach
Befolgen Sie die Anweisungen von Google auf dieser Seite oder öffnen Sie einfach diesen Link.
Wählen Sie von dort aus einen Namen für Ihre App (zum Beispiel "PHPMailer") und drücken Sie die Schaltfläche "Generieren", wie gesehen.
in diesem Bild:
Nach dem Drücken der Taste erhalten Sie eine 16-Zeichen lange Zeichenfolge, die Sie zum Anmelden verwenden können. Stellen Sie sicher, dass Sie sie sofort kopieren.
weil Sie es später nicht abrufen können (wenn Sie es verlieren, müssen Sie ein neues App-Passwort erstellen von
Scratch):
Jetzt müssen Sie nur noch diesen neuen String als Passwort in Ihrer PHPMailer-Konfiguration verwenden (ohne Leerzeichen,
die sind nur zur Lesbarkeit da):
$mail->isSMTP();
$mail->Host = '[Link]';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = 'myusername@[Link]';
$mail->Password = 'eqwvrwlbbizcsdcz';
XOAUTH2 ist Googles empfohlene Authentifizierungsmethode. Obwohl es ein ziemlich komplexes Protokoll ist, dank
Es ist möglich, PHPMailer ohne große Schwierigkeiten zu verwenden.
Die XOAUTH2-Implementierung von PHPMailer basiert auf der Bibliothek theleague/oauth2-client, die daher vorhanden sein muss.
Auf Ihrem System installiert. Insbesondere müssen Sie das Paket league/oauth2-google installieren.
Der einfachste Weg, es zu installieren, ist die Verwendung von Composer. Wenn Sie sich entschieden haben, PHPMailer mit Composer zu installieren, dann können Sie
Machen Sie dasselbe mit der league/oauth2-google-Bibliothek: Gehen Sie einfach zum Composer-Installationsverzeichnis und geben Sie ein
composer require league/oauth2-google
Sie können diese Bibliothek auch in einem anderenVerzeichnis installieren, aber in diesem Fall müssen Sie zwei einfügen.
[Link]-Dateien. Wenn Sie Composer nicht verwendet haben, um PHPMailer zu installieren, installieren Sie einfach die OAUTH2-Bibliothek in einer neuen
Verzeichnis.
Leider ist die Installation von league/oauth2-google ohne Composer etwas schwierig, da es ein paar Anforderungen hat.
Bibliotheken müssen ebenfalls installiert werden. Wenn Sie Composer wirklich nicht mögen und es nicht verwenden möchten, müssen Sie herunterladen
alle manuell und in Ihre Skripte einfügen.
Sobald Sie league/oauth2-google installiert haben, müssen Sie einige Schritte mit dem Google-Konto durchführen.
du wirst benutzen.
Alle diese Schritte werden in diesem PHPMailer XOAUTH2-Tutorial detailliert erklärt. Befolgen Sie alle Schritte, aber hören Sie auf.
vor dem letzten "Konfigurieren Sie Ihr E-Mail-Skript"-Absatz, da es veraltet ist und der Beispielcode dort
funktioniert nicht mehr.
Bitte beachten Sie, dass Sie eine funktionierende Entwicklungsumgebung benötigen, da Sie bearbeiten müssen ein
PHPMailer-Datei (get_oauth_token.php) und führen Sie sie mit einem Webbrowser aus.
Nachdem Sie alle erforderlichen Schritte abgeschlossen haben, werden Sie drei Authentifizierungszeichenfolgen haben:
dieClient-ID
2. derClient Secret
3. und das Refresh-Token
Als nächstes müssen Sie das PHPMailer-Skript konfigurieren, die OAUTH2-Bibliothek einfügen und die Authentifizierung einstellen.
Parameter. Die erforderlichen Schritte sind:
5. Erstellen Sie ein league/Google-Objekt und ein PHPMailer/OAuth-Objekt mit den Authentifizierungsstrings, die Sie erhalten haben.
In den vorherigen Schritten und verwenden Sie sie für den Authentifizierungsprozess.
In diesem letzten Beispiel können Sie sehen, wie das gemacht wird:
<?php
erfordern 'C:\xampp\composer\vendor\[Link]';
date_default_timezone_set('Etc/UTC');
meineadresse@[Link]
'CliendIdString';
ClientSecret
Aktualisierungstoken
versuchen {
$mail->Host = '[Link]';
$mail->AuthType = 'XOAUTH2';
$mail->setOAuth(
neues OAuth(
[
$provider
$oauth2_clientId
$oauth2_clientSecret
$oauth2_refreshToken
$google_email
]
)
);
$mail->send();
}
catch (Ausnahme $e)
{
echo $e->errorMessage();
}
catch (00Exception $e)
{
echo $e->getMessage();
}
Mit diesem Tutorial haben Sie alles gelernt, was Sie wissen müssen, um PHPMailer in vollem Umfang zu nutzen: wie man es installiert,
wie man seine Funktionen nutzt, wie man SMTPS-Verbindungen (einschließlich Gmail) konfiguriert, Fehlerbehandlung und
mehr.
Sie können diese Seite gerne als Lesezeichen speichern und bei Bedarf hierher zurückkehren.
Wenn Sie ein Problem haben, überprüfen Sie den PHPMailer-Fehlerbehebungsleitfaden oder hinterlassen Sie mir einfach einen Kommentar unten. Sie sind
auch eingeladen, meiner Facebook-Gruppe (Alex PHP-Café) beizutreten, wo ich und meine Gemeinschaft uns sehr freuen werden.
Hilf dir!
Jetzt bin ich neugierig: Wie nutzen SIE E-Mail in Ihren Webanwendungen? Ich freue mich darauf, von Ihnen zu hören.
du!
[Link] dieser Leitfaden Ihnen hilfreich war, nehmen Sie sich bitte einen Moment Zeit, um ihn zu teilen... danke!
Erhalten Sie jetzt das KOSTENLOSE PDF sowie Blog-Nachrichten direkt in Ihren Posteingang!