Heim > Backend-Entwicklung > PHP-Tutorial > Erklärung, wie man PHPMailer in PHP einführt, um E-Mails zu versenden (mit Code)

Erklärung, wie man PHPMailer in PHP einführt, um E-Mails zu versenden (mit Code)

不言
Freigeben: 2023-04-04 10:10:02
nach vorne
3835 Leute haben es durchsucht

Der Inhalt dieses Artikels besteht darin, die Schritte zur Einführung von PHPMailer zum Senden von E-Mails (mit Code) zu erläutern. Ich hoffe, dass er für Sie hilfreich ist .

Ich habe gestern eine Funktion zum Senden von E-Mails erstellt. Wenn Sie die Funktion mail() direkt verwenden, ist die Einführung der PHPMailer-Klasse einfach Schritte:

1, haben Sie Ihr eigenes E-Mail-Konto (als E-Mail-Adresse des Absenders)

Es gibt zwei Situationen:

1. Wenn es sich um eine Firmen-E-Mail handelt, sind die erforderlichen Parameter erforderlich sind E-Mail-Nummer und Passwort

 2. Wenn es sich um eine persönliche E-Mail handelt, sind die erforderlichen Parameter die E-Mail-Nummer und der Autorisierungscode (erst nach der Aktivierung kann der automatische Versand von E-Mails über den PHP-Code gesteuert werden).

2. Download von PHPMailer

Download-Adresse: https://github.com/PHPMailer/PHPMailer

Ich verwende hier thinkphp 5, lade es herunter und lege es dann in das Anbieterverzeichnis

3. E-Mail-Methode kapseln und senden, relevante Parameter festlegen

Der spezifische Code ist wie folgt. Hier verwende ich eine Firmen-E-Mail. Wenn es sich um eine persönliche E-Mail handelt, müssen Sie die folgenden Parameterwerte ändern:

$mail->Host,$mail->Port,发件人邮箱密码(授权码)
Nach dem Login kopieren

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/10/15 0015
 * Time: 13:33
 */
namespace app\common\model;
require VENDOR_PATH . &#39;PHPMailer/src/Exception.php&#39;;
require VENDOR_PATH . &#39;PHPMailer/src/PHPMailer.php&#39;;
require VENDOR_PATH . &#39;PHPMailer/src/SMTP.php&#39;;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception ;
class Mail
{
    //发件人邮箱
    private static $_fromAddress = &#39;***@medpeer.cn&#39;;
    //发件人邮箱登录密码(非企业邮箱为授权码)
    private static $_pwd = &#39;***&#39;;
    //收件人邮箱
    private static $_toAddress = &#39;***@medpeer.cn&#39;;

    /**
     * 发送邮件
     * @author ZZ
     * @param string $fromAddress 发件人
     * @param string $pwd 发件人登录密码
     * @param string $toAddress 收件人
     * @param string $title 邮件题目
     * @param string $content 邮件内容
     * @return array
     */
    public function sendMail($title,$content,$toAddress = &#39;&#39;,$fromAddress = &#39;&#39;,$pwd = &#39;&#39;){
        if (empty($title) || empty($content)) {
            return [&#39;result&#39; => false, &#39;msg&#39; => &#39;参数错误&#39;];
        }
        if (empty($fromAddress)) {
            $fromAddress = self::$_fromAddress;
            $pwd = self::$_pwd;
        }
        if (empty($toAddress)) {
            $toAddress = self::$_toAddress;
        }
        $mail = new PHPMailer();
        //告诉PHPMailer使用SMTP
        $mail->isSMTP();
        //启用SMTP调试
        // 0 =关闭(供生产使用)
        // 1 =客户端消息
        // 2 =客户端和服务器消息
        $mail->SMTPDebug = 2 ;
        //设置邮件服务器的主机名
        $mail->Host = &#39;smtp.exmail.qq.com&#39;;
        //使用
        // $ mail-> Host = gethostbyname(&#39;smtp.gmail.com&#39;);
        //如果您的网络不支持SMTP over IPv6
        //设置SMTP端口号 -  587用于经过身份验证的TLS,即RFC4409 SMTP提交
        $mail->Port = 465;
        //设置加密系统使用 -  ssl(不建议使用)或tls
        $mail->SMTPSecure = &#39;ssl&#39;;
        //是否使用SMTP身份验证
        $mail->SMTPAuth = true ;
        //用于SMTP身份验证的用户名 - 使用gmail的完整电子邮件地址
        $mail->Username = $fromAddress;
        //用于SMTP身份验证的密码(企业邮箱的话为登录密码)
        $mail->Password = $pwd;
        //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
        $mail->CharSet = &#39;UTF-8&#39;;
        //设置要从中发送消息的人员
        $mail->setFrom($fromAddress,&#39;***&#39;);
        //设置备用回复地址
        //$mail->addReplyTo(&#39;***@qq.com&#39;,&#39;腾讯&#39;);
        //设置要将消息发送给谁
        $mail->addAddress($toAddress,&#39;***&#39;);
        //设置主题行
        $mail->Subject = $title;
        //从外部文件中读取HTML邮件正文,将引用的图像转换为嵌入式图像
        //将HTML转换为基本的纯文本替代正文
        //$mail->msgHTML(file_get_contents(&#39; contents.html &#39;),__DIR__);
        //用手动创建的纯文本正文替换
        $mail->AltBody  = &#39;This is the body in plain text for non-HTML mail clients&#39;;
        $mail->Body  = $content;
        $result = $mail->send();
        if (!$result) {
            return [&#39;result&#39; => false, &#39;msg&#39; => $mail->ErrorInfo];
        } else {
            return [&#39;result&#39; => true, &#39;msg&#39; => &#39;成功发送邮件消息&#39;] ;
        }
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonErklärung, wie man PHPMailer in PHP einführt, um E-Mails zu versenden (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage