Heim Backend-Entwicklung PHP-Tutorial Ausführliche Erklärung zum Versenden von PHP-E-Mails

Ausführliche Erklärung zum Versenden von PHP-E-Mails

May 16, 2018 am 11:07 AM
php 使用 详解

Dieses Mal erkläre ich Ihnen ausführlich, wie Sie PHP E-Mail-Versand verwenden und welche Vorsichtsmaßnahmen für den PHP-E-Mail-Versand gelten sehen.

Das Versenden von E-Mails ist eine häufige Funktion von Websites, wie z. B. die Benutzeraktivierung und das Abrufen von Passwörtern, die häufig das Senden von E-Mails an Benutzerpostfächer erfordern. In diesem Artikel werden zunächst die zugehörigen Konzepte zum Senden von E-Mails erläutert und anschließend Beispielcode zum Senden von E-Mails mit PHP bereitgestellt.

Textnachrichten senden

Von der Funktion her ähneln Textnachrichten E-Mails und werden häufig für Benachrichtigungen und Sicherheitsüberprüfungen verwendet. Für das Versenden von Textnachrichten ist (grundsätzlich) eine Zahlung an den Anbieter erforderlich, sodass SMS-Anbieter einen Anreiz haben, eine klare Dokumentation und benutzerfreundliche Schnittstellen bereitzustellen, auf die Benutzer zugreifen können. Im Allgemeinen sind diejenigen, die Textnachrichten senden:

Suchen Sie nach Anbietern wie Alibaba Big Fish, aggregierten Daten usw.

Registrieren Sie ein Konto und erhalten Sie App-ID und Appkey;

Vorlage anwenden ;

Schnittstellendokumentation ansehen und in die Anwendung integrieren

API zum Versenden von Textnachrichten aufrufen;

Der Vorgang ist einfach und leicht zu verstehen, außerdem ist der Zugriff und die Verwendung sehr bequem. Sie können ihn grundsätzlich innerhalb von ein oder zwei Stunden anschließen und testen. Benutzer müssen während des Kommunikationsprozesses keine Details wie die Verschlüsselung und Adressierung von Nachrichten berücksichtigen. Der Nachteil besteht darin, dass sie bezahlen müssen.

E-Mail ist im Allgemeinen ein kostenloser Dienst, der entsprechende Support ist jedoch nicht vorhanden, was selbstverständlich sein sollte. Es gibt viele Klassenbibliotheken zum Versenden von E-Mails in verschiedenen

Programmiersprachen. Aus Sicht der Quelle können sie grundsätzlich in zwei Kategorien unterteilt werden: Versenden vom lokalen Computer und Versenden von einem externen E-Mail-Dienstanbieter . Um den Prozess des E-Mail-Versands zu verstehen, stellen wir zunächst einige verwandte Konzepte vor.

Verwandte Konzepte

Die meisten Menschen, die mit dem Internet zu tun haben, haben Erfahrung im Umgang mit E-Mails, diese sind jedoch im Wesentlichen auf E-Mail-Clients, Webseiten und Anbieter beschränkt. Wenn Sie als Entwickler die folgenden Konzepte in diesem Abschnitt verstehen, können Sie die Details der E-Mail-Kommunikation besser beherrschen.

MUA: Mail User Agent, Mail-Benutzeragent. Benutzeragent ist ein in der Entwicklung häufig vorkommendes Wort. Es bezieht sich hauptsächlich auf ein Tool, das menschliche Absichten versteht und im Namen des Benutzers Ressourcen anfordert. Beispielsweise ist der Browser der am häufigsten verwendete Benutzeragent. Er sendet eine Anfrage im HTTP/HTTPS-Protokollformat an den Webserver, analysiert die Antwort, rendert sie und präsentiert sie dem Benutzer. E-Mail-Benutzeragenten sind üblicherweise Tools wie Foxmail und Outlook. Nachdem Benutzer E-Mails geschrieben haben, kapseln sie den E-Mail-Inhalt entsprechend dem Format und kommunizieren mit dem Mailserver.

MTA: Mail Transfer Agent, ein Programm, das Benutzern beim Senden und Empfangen von E-Mails hilft. Der häufig erwähnte Mailserver bezieht sich auf die MTA-Open-Source-Programme, darunter Sendmail, Postfix, QMail usw.

MRA: Mail Retrieval Agent, der Mail-Sammelagent, ruft die E-Mails des Benutzers lokal vom Mailserver ab. E-Mail-Clients sind gängige MRAs.

SMTP: Simple Mail Transfer Protocol, einfaches Mail-Übertragungsprotokoll. Benutzer, Mailserver und Mailserver verwenden alle dieses Protokoll, um E-Mails untereinander zu übertragen (Standard ist Klartext, und SSLTLS-Verschlüsselung kann verwendet werden).

POP3/IMAP: Post Office Protocol Version 3/Internet Message Access Protocol, Post Office Protocol Version 3 oder Network Information Access Protocol, das Protokoll, das der Client verwendet, um E-Mails vom Server abzurufen.

Benutzer A (Postfach 163) sendet einen Brief an Benutzer B (Postfach Gmail). Der Vorgang, bei dem Benutzer B den Brief erhält, umfasst die oben genannten Konzepte. Der Prozess und die konzeptionelle Beziehung können durch das folgende vereinfachte Diagramm dargestellt werden:

用户A --发送邮件--> 用户B
 M|S         M|I
 U|M         R|M
 A|T         A|A
 |P         |P
 v          v
MTA(163)--转发(SMTP)->MTA(gmail)
Nach dem Login kopieren

Hinweis: Die obige Abbildung zeigt den allgemeinen Prozess des Versendens von E-Mails. Andere MSA, MDA, ESMTP, SMTPS usw. können im Ganzen vorkommen Dies wirkt sich jedoch nicht auf das Verständnis des Sendens und Empfangens von E-Mails aus. Die unten genannten Abkürzungen und Konzepte werden beachtet. Bei anderen prüfen Sie bitte selbst.

Postfix

Die Software zum Versenden von E-Mails unter Linux ist hauptsächlich sendmail und Postfix. Sie fungieren als MTA/MDA (Mail Delivery Agent, Mail Delivery Agent). obiges Konzept im System. Es hilft Benutzern, ausgehende E-Mails zu senden und E-Mails zu empfangen, die an das Postfach des Benutzers gesendet werden (Standardspeicherort /var/spool/mail/Benutzername).

Sendmail ist eine seit langem etablierte E-Mail-Software mit einem sehr hohen Ruf. Aber Wietse (Wietse Zweitze Venema) war damit nicht zufrieden, also hat er sich Postfix ausgedacht. Der Postfix-Befehl ist (fast) kompatibel mit Sendmail, aber effizienter und sicherer (der Ursprung des Suffix-Fixes). Er ist derzeit die Standardsoftware zum Senden und Empfangen von E-Mails für die meisten Linux-Distributionen. Es wird empfohlen, Postfix anstelle von Sendmail zu verwenden. Vor vielen Jahren gab es in diesem Blog einen Artikel über die Konfiguration von sendmail. Damals war ich jung und unwissend, also wollte ich mir die Zeit nehmen, diesen Artikel zu überarbeiten.

Die Hauptkonfigurationsdatei von Postfix ist /etc/postfix/main.cf. Die Konfigurationsdatei ist sehr gut kommentiert und die Optionen sind im Grunde selbsterklärend. Die wichtigsten Konfigurationen sind: myhostname, myorigin, inet_interfaces, inet_protocols und mydestination (wenn Sie vorhaben, Briefe von der Außenwelt zu empfangen). Es ist zu beachten, dass, wenn inet_interfaces als localhost konfiguriert ist, der Wert von inet_protocols ipv4 sein sollte, andernfalls wird möglicherweise eine Fehlermeldung ähnlich wie postfix: fatal: Parameter inet_interfaces: no local interface done for ::1 angezeigt.

Mehrere gängige Postfix-Befehle im Zusammenhang mit E-Mails sind:

mail oder mailx, um E-Mails zu senden. Der tlanyan-Benutzer sendet eine E-Mail an root: mail -s „Greetings“ root@localhost -r tlanyan@localhost, dann geben Sie „A nice day!“ in das Terminal ein, drücken Sie dann die Eingabetaste, drücken Sie Strg+D, um die Textbearbeitung zu beenden, und senden Sie die E-Mail wurde gesendet. Melden Sie sich beim Root-Konto an und Sie werden benachrichtigt, dass sich in /var/spool/mail/root neue E-Mails befinden. Verwenden Sie tail oder andere Befehle, um detaillierte Informationen der E-Mail anzuzeigen.

postquque, sehen Sie sich die E-Mail-Versandwarteschlange an. postqueue -p kann den Befehl mailq in sendmail ersetzen und postqueue -f aktualisiert die Warteschlange (erzwingt einen Versuch, E-Mails in der Warteschlange zu senden).

postcat, überprüfen Sie die Informationen nicht gesendeter E-Mails. Beispielsweise kann postcat -q xxxx (xxxx ist die nicht gesendete Warteschlangen-ID, die von postqueue oder mailq angezeigt wird) die detaillierten Informationen der E-Mail anzeigen, und postcat -b -q xxxxx kann nur den Text der E-Mail anzeigen.

postsuper, ein E-Mail-Verwaltungsprogramm, das nur von Superbenutzern verwendet werden kann. postsuper -d xxxx, E-Mail mit der Warteschlangen-ID xxxxx löschen; postsuper -h xxxxx, Senden der E-Mail mit der Warteschlangen-ID xxxx anhalten usw.

Die obige Einführung reicht grundsätzlich für den E-Mail-Versand aus. Beachten Sie, dass die vom Mail-Befehl gesendete E-Mail nur zugestellt werden kann, wenn Postfix ausgeführt wird (ps aux | grep postfix | grep -v grep-Ausgabe ist nicht leer).

Mit Postfix können Sie nach der Konfiguration E-Mails extern senden und vom externen Netzwerk gesendete E-Mails empfangen, dies ist jedoch auf Befehlszeilenvorgänge beschränkt. Wenn Sie Clients wie Foxmail zum Senden und Empfangen von E-Mails verwenden möchten, müssen Sie dafür sorgen, dass der Server das POP3/IMAP-Protokoll unterstützt. Der Open-Source-Taubenschlag kann diese Funktion erreichen. Dovecot dient eher zum Empfangen als zum Versenden von E-Mails. Das Verständnis ist für die Entwicklung wenig hilfreich. Wenn Sie ein vollständiges E-Mail-System aufbauen möchten (einschließlich Webseitenunterstützung, Spam-Filterung, Virenerkennung, Übertragungsverschlüsselung usw.), wird empfohlen, auf das inländische Open-Source-EwoMail zu verweisen oder es zu verwenden.

Wie hilfreich ist es, Postfix für den E-Mail-Versand während der Entwicklung zu kennen? Ehrlich gesagt, wenig Hilfe. Der Grund dafür ist, dass große Cloud-Server-Hersteller Port 25 blockiert haben, um die Verbreitung von Spam zu verhindern (Google Cloud hat sogar Port 465 blockiert). Es ist möglich, dass Amazon Cloud über eine Anwendung freigegeben wird (es gibt jedoch Raten- und Tageskontingentgrenzen), und andere Anbieter erlauben Ihnen fast nie, Ihren eigenen Domainnamen zu verwenden, um E-Mails direkt von diesem Computer aus zu senden. In der Branche ist es nahezu gängige Praxis, Port 25 zu blockieren und einen E-Mail-Dienst eines Drittanbieters zu nutzen.

Kluge Leute denken vielleicht, dass die Verwendung von verschlüsseltem Port 465 (basierend auf SMTPS, SMTP über SSL-Protokoll) oder Port 587 (SMTP über STARTTLS-Protokoll) zum Senden von E-Mails Einschränkungen umgehen kann? Alibaba Cloud/Tencent Cloud und andere Hersteller blockieren den Port 465 nicht. Sie können diesen Port zum Versenden von E-Mails ohne Antrag verwenden. Beachten Sie jedoch, dass die Ports 465 und 587 für die Kommunikation zwischen dem Client und dem Mailserver verwendet werden und Port 25 für die Kommunikation zwischen Mailservern verwendet wird. Sie können über Port 465 eine Verbindung zum Gmail-Postfach herstellen, um E-Mails extern zu senden. Sie können jedoch nicht zulassen, dass Postfix Port 465 verwendet, um E-Mails an den Hotmail-Mailserver zuzustellen.

Zusammenfassend lässt sich sagen, dass sendmail/postfix als Mailserver-Software vor der Verbreitung von Spam und betrügerischen E-Mails einen großen Beitrag für die Branche geleistet hat. Aufgrund der Beliebtheit von Cloud-Servern ist es fast unmöglich, E-Mails mit Domänennamen zu senden, die auf den lokalen Computer verweisen. Sendmail/Postfix ist außer für den Versand von Erinnerungs-E-Mails innerhalb des lokalen Computers von geringem Nutzen. Um E-Mails extern zu versenden, müssen Sie entweder einen eigenen Computerraum einrichten oder ein E-Mail-System eines Drittanbieters verwenden.

PHPs Mail-Funktion

Als PHP-Entwickler ist es immer noch nützlich, sendmail/Postfix zu verstehen. Die Mail-Funktion verwendet standardmäßig sendmail/postfix zum Versenden von E-Mails. Wenn Sie die entsprechende Konfiguration verstehen, wissen Sie, warum sie funktionieren kann bzw. nicht.

Um es einfach auszudrücken: Damit die in PHP integrierte Mail-Funktion ordnungsgemäß funktioniert, müssen Sie Folgendes tun:

Beantragen Sie einen Domainnamen, legen Sie MX-Einträge in der DNS-Auflösung fest und zeigen Sie an den lokalen Rechner (nicht legaler Host) (E-Mails, die per FQDN, vollqualifiziertem Domänennamen gesendet werden, werden direkt als Spam verworfen);

Installieren Sie sendmail/postfix, konfigurieren Sie die Software und führen Sie sie aus;

Konfigurieren Sie Firewalls, Sicherheitsgruppen und Freigabeports.

Geringe Sendeeffizienz, nicht

objektorientierte

Aufrufmethode, umständliche Konfiguration und Blockade durch Cloud-Server-Hersteller sind die größten Hindernisse für die Nutzung der Mail-Funktion. Seitdem ich angefangen habe, in PHP zu arbeiten, habe ich die Mail-Funktion nie direkt verwendet.

PHP发送邮件

发个邮件要了解这么多,会让人觉得很心累。说好的PHP是最好的语言呢?

PHP发送邮件也可以很简单,推荐方式就是使用Swift Mailer或PHPMailer等类库。引入这些类库后,注册第三方邮箱(比如Gmail、QQ等),填好用户名密码,配置好STMP地址和端口,就能像发送短信一样轻松发送邮件。当然这些类库也支持使用sendmail/postfix发送邮件,但我想你不会再这样做了。

以Swift Mailer为例,直接上代码说明使用PHP发送邮件也是一个非常简单的事情!

首先,在项目中引入Swift Mailer:

然后准备好邮件内容(以文本文件为例,不带附件):

接着,设置好邮件传输方式(使用Gmail邮箱):

或者使用sendmail/postfix的方式(不推荐):

最后,使用transport构造mailer实例,发送邮件:

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

PHP+MySQL实现消息队列步骤详解

ES6使用技巧总结

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Versenden von PHP-E-Mails. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1657
14
PHP-Tutorial
1257
29
C#-Tutorial
1230
24
PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

See all articles