phpにPHPMailerを導入してメールを送信する方法を解説(コード付き)

不言
リリース: 2023-04-04 10:10:02
転載
3811 人が閲覧しました

この記事の内容は、PHPでメールを送信するためのPHPMailerの導入手順を解説したものです(コード付き) ある程度の参考価値はありますので、困っている方は参考にしていただければ幸いです。

昨日はメールを送信する関数を作りました。mail()関数を直接使う場合は、独自のメールサーバーが必要です。PHPMailerクラスを導入すると便利で手っ取り早いです。開発内容を書くだけです。手順:

一、(送信者の電子メールとして) 自分の電子メール アカウントを持つ

2 つの状況があります:

1. 企業電子メールの場合、必要なパラメータは電子メール番号とパスワードです

2. 個人用メールボックスの場合、必要なパラメータはメールボックス番号と認証コードです(有効にした後にのみ、PHP コードを通じて電子メールの自動送信を制御できます) )

2. PHPMailer のダウンロード

ダウンロードアドレス: https://github.com/PHPMailer/PHPMailer

ここでは thinkphp 5 を使用しています。ダウンロードして、ベンダー ディレクトリに置きます。

3. 電子メール メソッドをカプセル化して送信し、関連するパラメーターを設定します。

特定のコードここでは企業メールを使用しています。個人メールの場合は、次のいくつかのパラメータ値を変更する必要があります:

$mail->Host,$mail->Port,发件人邮箱密码(授权码)
ログイン後にコピー

<?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;] ;
        }
    }
}
ログイン後にコピー

以上がphpにPHPMailerを導入してメールを送信する方法を解説(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート