Tatsächlich muss nicht jedes Projekt die PHP-E-Mail-Versandfunktion verwenden, aber tatsächlich wird jedes vollständige Projekt im Allgemeinen eine PHP-E-Mail-Versandfunktion enthalten.
Die allgemeine E-Mail-Versandfunktion wird häufig für die Registrierungsaktivierung, den Passwortabruf und die Antwort auf Nachrichten usw. verwendet. Und das bereitet vielen Menschen auch Kopfzerbrechen, denn diese Funktion lässt sich nicht mit ein paar Zeilen Code erreichen und kann von Ihnen nicht mit Zeit- und Energieaufwand geschrieben werden. Diese Funktion ist eigentlich ein fertiges Produkt. Jetzt müssen wir erklären, wie man die PHPMailer-Klassenbibliothek verwendet, um die PHP-Postfach-Sendefunktion zu implementieren.
Lassen Sie uns zunächst darüber sprechen, wie Sie Ihren eigenen Domainnamen als E-Mail-Adresse zum Versenden von E-Mails verwenden können?
In der PHP-Umgebung steht die Funktion mail() zum Versenden von E-Mails zur Verfügung, diese Funktion erfordert jedoch, dass der Server Sendmail unterstützt, oder dass ein Mail-Versandserver eingerichtet werden muss, der kein Relay benötigt Heutzutage ist es fast unmöglich, ein E-Mail-Versand-Relay zu finden, das keine Authentifizierung erfordert, sodass die Verwendung der Mail-Funktion häufig nicht zum erfolgreichen Versenden von E-Mails führt. Ist PHP also nicht in der Lage, E-Mails zu versenden? Die Antwort lautet: Nein. Wenn Sie mit dem POP3/SMTP-Protokoll vertraut sind und es mit der Socket-Funktion kombinieren, können Sie ein effizientes und stabiles E-Mail-Versandprogramm schreiben, aber dieser Workaround entspricht der Verwendung von PHP Das Schreiben eines POP3/SMTP-Clients ist für normale Entwickler immer noch schwierig.
Glücklicherweise gibt es mittlerweile reichlich Internetressourcen und PHPMailer wurde zu dieser Zeit geboren.
Was sind die Vorteile von PHPMailer?
Kann auf jeder Plattform ausgeführt werden
Unterstützt SMTP-Authentifizierung
E-Mails senden Geben Sie mehrere Empfänger, CC-Adresse, BCC-Adresse und Antwortadresse an. Hinweis: Das Hinzufügen von CC und BCC wird nur vom SMTP-Modus unter der Win-Plattform unterstützt.
Unterstützt mehrere E-Mail-Kodierungen, einschließlich: 8bit, base64, binär und in Anführungszeichen druckbare
Unterstützt redundanten SMTP-Server, d. h. Sie können die Haupt-SMTP-Serveradresse oder nur den Backup-SMTP-Server angeben.
Unterstützt E-Mails mit Anhängen und Sie können dem E-Mail-Anhang ein beliebiges Format hinzufügen. – Natürlich muss Ihr Server über genügend Bandbreite verfügen, um
Benutzerdefinierte E-Mail-Header-Informationen zu unterstützen, die dem Senden von Header-Informationen über die Header-Funktion in PHP ähneln.
Unterstützt die Umwandlung des E-Mail-Texts in HTML-Inhalt , dann können Sie Bilder in den E-Mail-Text einfügen
Flexible Debug-Unterstützung
Zu den getesteten und kompatiblen SMTP-Servern gehören: Sendmail, qmail, Postfix, Imail, Exchange usw.
Wie lade ich das PHPMailer-Codepaket herunter?
PHPMailer-Projektadresse: https://github.com/PHPMailer/PHPMailer Verwenden Sie den Git-Befehl, um es lokal oder direkt in zu klonen Klicken Sie unten rechts auf der Projektseite auf „ZIP herunterladen“, um das vollständige PHPMailer-Codepaket zu erhalten.
Wie verwende ich PHPMailer mit der „Domainnamen-Mailbox“ unter qq-Mailbox, um Ihren eigenen Domainnamen als E-Mail-Adresse zum Senden von E-Mails zu verwenden?
= ===
Das Folgende ist in zwei Teile unterteilt, um zu erklären, wie Sie mit Ihrem eigenen Domainnamen das „Domainnamen-Postfach“ unter QQ-Postfach kostenlos öffnen und PHPMailer in der PHP-Umgebung zum automatischen Senden verwenden E-Mails mit dem neu geöffneten „Domainnamen-Postfach“.
====
Der erste Teil: Öffnen Sie das „Domainnamen-Postfach“ unter qq-Postfach
Da das Öffnen eines „Domainnamen-Postfachs“ lediglich ein Verständnis der Betriebsmethode darstellt, wird dieser Teil nur kurz besprochen.
Geben Sie das QQ-Postfach ein, klicken Sie auf „Einstellungen“ in der oberen linken Ecke der Seite, klicken Sie dann auf die Registerkarte „Konto“ unter „Postfacheinstellungen“, ziehen Sie die Bildlaufleiste, und Sie sehen „Domainnamen-Postfach“. Klicken Sie auf „Domainnamen-Postfach verwalten“, um die Seite zum Hinzufügen eines Domainnamen-Postfachs aufzurufen, oder klicken Sie direkt auf http://domain.mail.qq.com/
Klicken Sie auf „Domainnamen-E-Mail erstellen“ und befolgen Sie die Anweisungen auf der Seite, um Ihren eigenen Domainnamen hinzuzufügen und ihn zu bestätigen. PS: Wenn Sie erfolgreich „Domainnamen-Postfach“ unter Ihrem QQ-Postfach hinzugefügt haben, wird nach der Eingabe von QQ-Postfach nach der Schaltfläche „Einstellungen“ oben links auf der Seite der Text „Domainnamen-Postfach“ angezeigt, um Ihr Postfach hinzuzufügen Klicken Sie im genehmigten „Domainnamen-Postfach“ auf „Mitgliederverwaltung“, klicken Sie auf „Mitglied hinzufügen“, geben Sie Ihren bevorzugten Postfachnamen unter Ihrem Domainnamen ein und fügen Sie dann qq hinzu Nummer (die QQ-Nummer dient als Benutzer des neu hinzugefügten Postfachs. Die QQ-Nummer muss ein QQ-Postfach öffnen und nicht das digitale Konto schließen)
Das QQ-Postfach Der gerade eingegebenen QQ-Nummer wird eine Benachrichtigungs-E-Mail zum Öffnen des Domänennamen-Postfachs gesendet. Klicken Sie auf „Dieses E-Mail-Konto akzeptieren“. Zur Vereinfachung der Beschreibung wird die E-Mail-Adresse des Absenders festgelegt „E-Mail-Adresse des Absenders“.
Um die Sicherheit des Anmeldekennworts des qq-Kontos zu gewährleisten, legen Sie bitte ein „unabhängiges Passwort“ für das qq-Konto fest und gehen Sie zum qq-Postfach „Einstellungen“. „ – „Konto“ – „Kontosicherheit“ Nehmen Sie Einstellungen vor. Das dort festgelegte Passwort wird zur Vereinfachung der Beschreibung in diesem Artikel als „unabhängiges Passwort“ bezeichnet.
Nun wird unter qq mailbox das „Domainname-Postfach“ geöffnet und die E-Mail-Adresse hinzugefügt, die per PHPMailer als Absender versendet wird. Hier ist eine Liste einiger wichtiger Informationen, die PHPMailer später verwenden muss: QQ-Nummer, die im dritten Schritt oben hinzugefügte QQ-Nummer, „unabhängiges Passwort“, „E-Mail-Adresse des Absenders“, Name des Absenders...
Teil 2: Verwenden Sie PHPMailer, um Code zum Senden von E-Mails zu schreiben
PHPMailer erfordert PHP-Socket-Erweiterungsunterstützung und PHPMailer verknüpft die qq-Domäne Name Die E-Mail erfordert eine SSL-Verschlüsselung (qq-Postfach hat kürzlich Einschränkungen vorgenommen. Neu geöffnete Domänennamen-Postfächer erlauben keine normalen Linkverbindungen mehr über Port 25 des SMTP-Protokolls. Nur SSL-Port 465 oder 587 ist zulässig [eines meiner Domänennamen-Postfächer ist in Beta-Zeitraum] Derzeit kann Port 25 des geöffneten Domänennamen-Postfachs noch verknüpft werden. Es kann sich um eine Sicherheitsrichtlinie handeln, die den Port 25 neu geöffneter Domänennamen-Postfachkonten einschränkt.] Sie können phpinfo überprüfen Wenn die folgenden zwei Elemente vorhanden sind, können Sie es verwenden. Machen Sie sich keine Sorgen über die OpenSSL-Versionsnummer und dergleichen. PHP unterstützt in vielen virtuellen Hosts keine OpenSSL-Erweiterungen.
Hier ist zu beachten, dass wir zuvor OpenSSL in der PHP-Umgebung aktivieren müssen
Dies Teil Dies ist nur ein Codebeispiel. Der Code enthält einige Kommentare und Erklärungen, die als Ausgangspunkt dienen sollen.
Der heruntergeladene PHPMailer ist dekomprimiert und verschlankt. Er benötigt nur vier Dateien: class.phpmailer.php, class.pop3.php, class.smtp.php und PHPMailerAutoload. php. Der Sprachordner ist optional und wird hauptsächlich zum Anzeigen von Informationen während des Debuggens verwendet. Schauen Sie sich die Dateigröße von class.phpmailer.php an. Sie beträgt über 110 KB, was ziemlich beängstigend ist.
<?php //引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告 require_once("phpmailer/class.phpmailer.php"); //示例化PHPMailer核心类 $mail = new PHPMailer(); //是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式 $mail->SMTPDebug = 1; //使用smtp鉴权方式发送邮件,当然你可以选择pop方式 sendmail方式等 本文不做详解 //可以参考http://phpmailer.github.io/PHPMailer/当中的详细介绍 $mail->isSMTP(); //smtp需要鉴权 这个必须是true $mail->SMTPAuth=true; //链接qq域名邮箱的服务器地址 $mail->Host = 'smtp.qq.com'; //设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; //设置ssl连接smtp服务器的远程服务器端口号 可选465或587 $mail->Port = 465; //设置smtp的helo消息头 这个可有可无 内容任意 $mail->Helo = 'Hello smtp.qq.com Server'; //设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名 $mail->Hostname = 'jjonline.cn'; //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码 $mail->CharSet = 'UTF-8'; //设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名 $mail->FromName = '晶晶在线'; //smtp登录的账号 这里填入字符串格式的qq号即可 $mail->Username ='888888'; //smtp登录的密码 这里填入“独立密码” 若为设置“独立密码”则填入登录qq的密码 建议设置“独立密码” $mail->Password = 'xxxxxxx'; //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱” $mail->From = 'register@jjonline.cn'; //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false $mail->isHTML(true); //设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 //这里第二个参数的意义不大 $mail->addAddress('xxx@qq.com','晶晶在线用户'); //添加多个收件人 则多次调用方法即可 $mail->addAddress('xxx@163.com','晶晶在线用户'); //添加该邮件的主题 $mail->Subject = 'PHPMailer发送邮件的示例'; //添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 //如:使用file_get_contents函数读取本地的html文件 $mail->Body = "这是一个PHPMailer发送邮件的一个测试用例"; //为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称 $mail->addAttachment('./d.jpg','mm.jpg'); //同样该方法可以多次调用 上传多个附件 $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js'); //发送命令 返回布尔值 //PS:经过测试,要是收件人不存在,若不出现错误依然返回true 也就是说在发送之前 自己需要些方法实现检测该邮箱是否真实有效 $status = $mail->send(); //简单的判断与提示信息 if($status) { echo '发送邮件成功'; }else{ echo '发送邮件失败,错误信息未:'.$mail->ErrorInfo; } ?>
Besondere Erinnerung: Das obige Code-Snippet dient nur als Referenz. Wenn Sie es in das Website-System integrieren möchten, können Sie das Code-Snippet zusätzlich zum Aufrufen kapseln. PHPMailer unterstützt das Hinzufügen von CC oder Blindkopie unter der Win32-Plattform. Da ich Centos auf meinem Server verwende, habe ich es nicht getestet.