phpmailer: Ein leistungsstarkes Tool zum Senden von PHP Mail
Phpmailer ist eine beliebte Open -Source -PHP -Mail -Lieferbibliothek. In diesem Artikel wird erklärt, warum Phpmailer besser ist als die integrierten mail()
-Funktionen von PHP und Code-Beispiele bereitgestellt.
Kernpunkte
- phpmailer ist eine beliebte Open-Source-PHP-Mail-Zustellbibliothek, die mehr Funktionen und Flexibilität bietet als integrierte
mail()
-Funktionen von PHP, einschließlich objektorientierter Schnittstellen, einfacher HTML- und Anhangsprozess sowie der Verwendung nicht lokaler Mail-Server Fähigkeit. - phpmailer kann mit Composer installiert werden und wird von beliebten PHP -Content -Management -Systemen wie WordPress, Drupal und Joomla verwendet.
- Diese Bibliothek bietet einen leistungsstarken Fehlerbehebungsmechanismus, der Fehlermeldungen in mehr als 40 Sprachen drucken und die SMTP -Protokollunterstützung sowie die SSL- und TLS -Authentifizierung integriert.
- Zusätzlich zum Versenden von E-Mails unterstützt Phpmailer auch das Hinzufügen von Anhängen, das Senden von HTML- oder Klartextversionen von E-Mails und die Verwendung von SMTP zum Senden von E-Mails von nicht-lokalen Servern. Sie unterstützt jedoch nicht das Abrufen von E-Mails von E-Mail-Servern mit POP3-Protokoll.
Vergleich zwischen Phpmailer und PHP mail()
Funktionen
In den meisten Fällen ist Phpmailer eine Alternative zu integrierten PHP-integrierten mail()
-Funktionen, aber in vielen Fällen reicht die Flexibilität der mail()
-Funktionen nicht aus, um den Anforderungen gerecht zu werden.
Erstens liefert Phpmailer eine objektorientierte Schnittstelle, während die mail()
-Funktion nicht objektorientiert ist. PHP -Entwickler erstellen im Allgemeinen nicht gerne mail()
Zeichenfolgen beim Senden von E -Mails mit $headers
Funktionen, da dies viele Fluchtvorgänge erfordert. Phpmailer vereinfacht diesen Prozess. Beim Senden von Anhängen und HTML-basierten E-Mails mithilfe der mail()
-Funktion müssen Entwickler auch komplexe Code (entkommene Zeichen, Codierung und Formatierung) schreiben, und Phpmailer macht dies einfach.
Darüber hinaus erfordert die Funktion mail()
eine lokale E -Mail -Server zum Senden von E -Mails, die nicht immer einfach zu setzen ist. Wenn Authentifizierung verfügbar ist, kann Phpmailer einen nicht-lokalen Mailserver (SMTP) verwenden.
Andere Vorteile sind:
- Wenn das Senden einer Nachricht fehlschlägt, können verschiedene Fehlermeldungen in mehr als 40 Sprachen gedruckt werden.
- IT integriert die SMTP -Protokollunterstützung sowie die SSL- und TLS -Authentifizierung.
- kann eine alternative Klartextversion von Nachrichten an Non-HTML-Mail-Clients senden.
- Es gibt eine sehr aktive Gemeinschaft von Entwicklern, um es sicher und auf dem neuesten Stand zu halten.
phpmailer wird auch von beliebten PHP -Content -Management -Systemen wie WordPress, Drupal und Joomla verwendet.
Phpmailer
installierenphpmailer kann mit Composer installiert werden:
composer require phpmailer/phpmailer
E -Mails vom lokalen Webserver mit Phpmailer
sendenFolgendes ist das einfachste Beispiel für das Senden von E -Mails von einem lokalen Webserver mit PHPMailer:
composer require phpmailer/phpmailer
Der Code und die Kommentare in der PHP -Datei sollten alles erklären, was eindeutig genug passiert.
E -Mails senden, die Anhänge enthalten
Folgendes ist ein Beispiel dafür, wie Sie PHPMailer verwenden, um E -Mails mit Anhängen zu senden:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; // PHPMailer对象 $mail = new PHPMailer(true); // 构造函数中的参数true启用异常 // 发件人邮箱地址和名称 $mail->From = "from@yourdomain.com"; $mail->FromName = "完整姓名"; // 收件人地址和名称 $mail->addAddress("recepient1@example.com", "收件人姓名"); $mail->addAddress("recepient1@example.com"); // 收件人姓名是可选的 // 收件人回复地址 $mail->addReplyTo("reply@yourdomain.com", "回复"); // 抄送和密送 $mail->addCC("cc@example.com"); $mail->addBCC("bcc@example.com"); // 发送HTML或纯文本邮件 $mail->isHTML(true); $mail->Subject = "主题文本"; $mail->Body = "<i>HTML格式邮件正文</i>"; $mail->AltBody = "这是邮件内容的纯文本版本"; try { $mail->send(); echo "邮件已成功发送"; } catch (Exception $e) { echo "邮件错误:" . $mail->ErrorInfo; } ?>
Hier fügen wir zwei Dateien an - Datei.txt (im selben Verzeichnis wie das Skript) und Bilder/Profil.png (im Bilderverzeichnis des Skriptverzeichnisses).
Um Anhänge zu einer E -Mail hinzuzufügen, rufen wir einfach die Funktion addAttachment
des Phpmailer -Objekts auf, indem wir den Dateipfad als Parameter übergeben. Um mehrere Dateien anzuhängen, müssen wir es mehrmals aufrufen.
Fehlerbehebung
In unseren beiden Beispielen haben wir die Exception
-Klasse von Phpmailer zum Debuggen verwendet, sodass alle geworfenen Fehler uns helfen werden, alle Probleme zu debuggen, die möglicherweise auftreten. Wir haben auch den Parameter true
zum Phpmailer-Konstruktor hinzugefügt, um höhere und beschreibendere Ausnahmen auszugeben.
Abhängig von dem von uns verwendeten System wird der größte Fehler, den wir möglicherweise sehen, mit der Ausführung der mail()
-Funktion im Hintergrund zusammenhängen:
E -Mail -Fehler: Die Mail -Funktion kann nicht instanziiert werden.
Wenn wir detailliertere Fehlerinformationen benötigen, können wir auch der catch
-Klausel Folgendes hinzufügen:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once "vendor/autoload.php"; $mail = new PHPMailer; $mail->From = "from@yourdomain.com"; $mail->FromName = "完整姓名"; $mail->addAddress("recipient1@example.com", "收件人姓名"); // 提供附件的文件路径和名称 $mail->addAttachment("file.txt", "File.txt"); $mail->addAttachment("images/profile.png"); // 文件名是可选的 $mail->isHTML(true); $mail->Subject = "主题文本"; $mail->Body = "<i>HTML格式邮件正文</i>"; $mail->AltBody = "这是邮件内容的纯文本版本"; try { $mail->send(); echo "邮件已成功发送"; } catch (Exception $e) { echo "邮件错误:" . $mail->ErrorInfo; } ?>
Normalerweise hängt das Problem mit der Mail -Funktion mit den fehlenden Mailservereinstellungen zusammen. In diesem Fall wird die error_get_last
-Funktion etwas wie folgt zurückgegeben:
print_r(error_get_last());
Dies ist wahrscheinlich das häufigste Problem, das wir haben, und wir können es leicht mit SMTP lösen.
Lokalisierungsfehlermeldung
anzeigen $mail->ErrorInfo
kann Fehlermeldungen in 43 verschiedenen Sprachen zurückgeben.
Kopieren Sie das Sprachverzeichnis aus dem Quellcode von Phpmailer in das Projektverzeichnis, um Fehlermeldungen in verschiedenen Sprachen anzuzeigen.
Setzen Sie beispielsweise eine Fehlermeldung auf Russisch, um das Phpmailer -Objekt auf Russisch zu setzen, indem Sie die folgende Methode aufrufen:
<code>Array ( [type] => 2 [message] => mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() [file] => OUR_PATH \vendor\phpmailer\phpmailer\src\PHPMailer.php [line] => 863 )</code>
Sie können auch Ihre eigenen Sprachdateien zum Sprachverzeichnis hinzufügen.
Verwenden von SMTP
Sie können E -Mails mit dem E -Mail -Server eines anderen Hosts senden. Dies erfordert jedoch zuerst eine Authentifizierung. Um beispielsweise E -Mails vom Mailserver von Google Mail zu senden, müssen Sie ein Google Mail -Konto haben.
SMTP ist ein Protokoll, das vom Mail -Client verwendet wird, um E -Mail -Anfragen an den Mailserver zu senden. Nachdem der Mailserver die E -Mail überprüft hat, wird er an den Ziel -Mailserver gesendet.
Folgendes ist ein Beispiel für das Versenden von E -Mails von Ihrer Domain von Ihrem Google Mail -Mailserver. Sie benötigen keinen lokalen Server, um den Code auszuführen. Wir werden das SMTP -Protokoll verwenden:
composer require phpmailer/phpmailer
Google Mail erfordert eine TLS -Verschlüsselung über SMTP, daher setzen wir sie entsprechend. Bevor Sie SMTP senden, müssen Sie den Hostnamen, die Portnummer, feststellen, ob der Verschlüsselungstyp erforderlich ist und wenn eine Authentifizierung erforderlich ist, sind auch der Benutzername und das Kennwort erforderlich. Beachten Sie, dass Sie mit Ihrem Benutzernamen/Passwort nicht die SMTP-SMTP verwenden können, um die Zwei-Faktor-Authentifizierung auf Google Mail zu verwenden. Stattdessen ist eine zusätzliche Konfiguration erforderlich.
Einer der großen Vorteile bei der Verwendung von Remote SMTP anstelle von lokaler Mails besteht darin, dass wenn Sie PHPs mail()
-Funktion verwenden, um E -Mails zu senden und die Absendungsadressdomäne auf etwas anderes als den lokalen Domain -Namen (Servernamen) festlegen, den Empfänger des Empfängers Der Angriffsfilter des E -Mail -Servers markiert es als Spam. Wenn Sie beispielsweise eine E -Mail an name@yahoo.com von einem Server mit Hostname -Beispiel.com senden, unter Verwendung der Absenderadresse name@gmail.com, markiert Yahoo's Server sie als Spam oder zeigt eine Nachricht an den Benutzer an, wobei Sie nicht anweisen, nicht Um der Nachricht zu vertrauen, da die Quelle der Nachricht example.com ist, wird sie jedoch von gmail.com angezeigt. Obwohl Sie name@gmail.com haben, hat Yahoo keine Möglichkeit, dies zu wissen.
E -Mails mit POP3
abrufenphpmailer ermöglicht auch die Pop-Before-SMTP-Überprüfung zum Senden von Mail. Mit anderen Worten, Sie können sich mit Pop authentifizieren und E -Mails mit SMTP senden. Leider unterstützt Phpmailer nicht das Abrufen von E -Mails von einem E -Mail -Server mithilfe des POP3 -Protokolls. Es ist nur auf das Versenden von Mail beschränkt.
Schlussfolgerung
Wenn Sie PHP -Entwickler sind, ist es fast unmöglich, programmgesteuert zu vermeiden, dass E -Mails gesendet werden. Während Sie Dienste von Drittanbietern wie Mandrill oder SendGrid auswählen können, ist dies manchmal einfach nicht machbar und umso mehr beim Schreiben Ihrer eigenen E-Mail-Senden-Bibliothek. Hier kommen Phpmailer und seine Alternativen (Zend Mail, Swift Mailer usw.) ins Spiel.
Sie können die API über diese Bibliothek im Repository -Wiki oder in der offiziellen Dokumentation kennenlernen.
Sind Sie mit Abhängigkeiten der PHP -Bibliothek beunruhigt? Sehen Sie sich unsere Bildschirmaufzeichnung an, um zu sehen, wie Composer Ihnen helfen kann, sie zu verwalten.
häufig gestellte Fragen zu Phpmailer
Was ist Phpmailer? PHPMailer ist eine beliebte Open -Source -PHP -Bibliothek zum Senden von E -Mails von PHP -Anwendungen. Es bietet eine einfache und flexible Möglichkeit, E -Mails über SMTP, mail()
oder andere E -Mail -Senden -Methoden zu senden.
Wie installiere ich Phpmailer? Sie können Composer verwenden, um Phpmailer zu installieren, oder Sie können die Bibliothek direkt von GitHub herunterladen. Detaillierte Installationsanweisungen finden Sie in der PhpMailer -Dokumentation.
Ist Phpmailer frei zu verwenden? Ja, Phpmailer ist Open Source und wird unter der LGPL -Lizenz veröffentlicht. Dies bedeutet, dass es kostenlos in Open Source- und kommerziellen Projekten verfügbar ist.
Was sind die Systemanforderungen für Phpmailer? Phpmailer ist mit PHP 5.5 und später kompatibel. Stellen Sie sicher, dass Ihre Webhosting -Umgebung diese PHP -Versionen unterstützt.
Wie sende ich E -Mails mit Phpmailer? Sie können Phpmailer verwenden, um E -Mails zu senden, indem Sie eine Instanz der Phpmailer -Klasse erstellen, die erforderlichen Eigenschaften wie SMTP -Serverdetails und E -Mail -Inhalte festlegen und dann die send()
-Methode aufrufen.
Kann Phpmailer Anhänge in E -Mails verarbeiten? Ja, Phpmailer bietet Methoden zum Hinzufügen von Anhängen zu Ihren E -Mails. Sie können Dateien von einem Server oder Remote -Speicherort anhängen.
Was ist SMTP und warum sollte ich es mit Phpmailer verwenden? SMTP (Simple Mail Transfer Protocol) ist eine gängige Methode zum Senden von E -Mails. Durch die Verwendung von SMTP mit PHPMailer können Sie E -Mails über einen Remote -E -Mail -Server senden und eine bessere Steuerung und Zuverlässigkeit für die E -Mail -Zustellung bieten.
Kann ich HTML -E -Mails mit Phpmailer senden?
Ja, Phpmailer ermöglicht es Ihnen, E -Mails in einfachen Text- und HTML -Formaten zu senden. Sie können den Nachrichtentyp und den Format entsprechend festlegen. Plain Text-E-Mail eignet sich für Nicht-HTML-Mail-Kunden.
Kann ich Phpmailer verwenden, um Klartext-E-Mails an Non-HTML-Mail-Clients zu senden?
Ja, Phpmailer ermöglicht es Ihnen, einfache Text -E -Mails als Alternative zu HTML -E -Mails zu senden. Sie können den Nachrichtentyp und den Format entsprechend festlegen. Plain Text-E-Mail eignet sich für Nicht-HTML-Mail-Kunden.
Kann ich Phpmailer mit einem Nicht-SMTP-Mailserver wie Sendmail verwenden? Ja, Phpmailer unterstützt eine Vielzahl von E -Mail -Übertragungsmethoden, einschließlich SMTP, mail()
und anderen benutzerdefinierten Methoden, sodass Sie sie mit verschiedenen Arten von Mail -Servern verwenden können.
Das obige ist der detaillierte Inhalt vonSenden von E -Mails in PHP mit Phpmailer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

TomakePhpapplicationsfaster, folgt der THESESTEPS: 1) UseOpCodeCaching LikeopcachetOstorePrecompiledScriptByteCode.2) MinimizedatabasequeriesByusedQueryCachingandefficiendexing.3) Hebel -FeaturesForbetTerCodeeffizienz.4) Implementierungspflichtiger Strategie

ToimProvePhpapplicationSpeed, folge theSeSteps: 1) enableOpCodeCachingWithAPCUToreducescriptexexexeTime.2) ImplementDatabaseQueryCachingusedpdotominimizedatabaseHits.3) UseHttp/2TomultiplexRequeTsReconneconneconneconneconneconneconnectionOverhead.4))

Die Abhängigkeitsinjektion (DI) verbessert die Testbarkeit von PHP -Code durch explizit transitive Abhängigkeiten signifikant. 1) DI -Entkopplungsklassen und spezifische Implementierungen machen Tests und Wartung flexibler. 2) Unter den drei Typen injiziert der Konstruktor explizite Expressionsabhängigkeiten, um den Zustand konsistent zu halten. 3) Verwenden Sie DI -Container, um komplexe Abhängigkeiten zu verwalten, um die Codequalität und die Entwicklungseffizienz zu verbessern.

DatabaseQueryoPtimizationInphpinvolvesseveralStrategieShancePerformance.1) selectonlynn -nötigesColumntededatatransfer.2) Verwenden Sie IndexingTospeedUpDatarErvieval.3) ImplementQueryCachingtoStoreresultsOffRequerien.4) Nützliche Stände

PhpisusedForSensionsemailsDuetoitsbuilt-inmail () functionandSupportelibrary-LikephpmailerandSwiftmailer.1) UsetheMail () Funktionsbasicemails, Butithaslimitations.2) Verwenden SiePr

PHP -Performance -Engpässe können in den folgenden Schritten gelöst werden: 1) Verwenden Sie XDEBUG oder Blackfire für die Leistungsanalyse, um das Problem herauszufinden. 2) Datenbankabfragen optimieren und Caches wie APCU verwenden; 3) Verwenden Sie effiziente Funktionen wie Array_filter, um Array -Operationen zu optimieren. 4) Opcache für Bytecode -Cache konfigurieren; 5) Optimieren Sie das Front-End, z. B. die Reduzierung von HTTP-Anfragen und das Optimieren von Bildern; 6) Überwachen und optimieren Sie die Leistung kontinuierlich. Durch diese Methoden kann die Leistung von PHP -Anwendungen erheblich verbessert werden.

Abhängigkeitsinjektion (DI) InphpisadesignPatternThatManageSandRecesClass -Dependenzen, EnhancingCodemodularity, Testbarkeit und Maschinenbarkeit.itallowsspassingdependencieStaDatabaseConnectionStoclassesasparameters, Erleichterung der Erleichterung von Erleichterung von Vermittlungen und Erleichterung von Erleichterung von und scalierbarkeit.

CachingimProvePhpperformanceByStoringResultsofComputationsorquerienforquickretrieval, ReducingServerloadAnenHancingResponSetimes.EffectivestrategieSinclude: 1) OpcodeCaching, die storesCompiledPhpScriptsinmemorytoskipcompilation;


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
