>백엔드 개발 >PHP 튜토리얼 >이메일을 보내기 위해 PHPMailer를 PHP에 도입하는 방법에 대한 설명(코드 포함)

이메일을 보내기 위해 PHPMailer를 PHP에 도입하는 방법에 대한 설명(코드 포함)

不言
不言앞으로
2018-10-16 16:28:413830검색

이 글의 내용은 PHPMailer를 도입하여 PHP로 이메일을 보내는 방법(코드 포함)을 설명하는 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

어제 메일을 보내는 기능을 만들었습니다. mail() 함수를 직접 사용하려면 자체 메일 서버가 있어야 합니다. PHPMailer 클래스를 도입하는 것이 편리하고 빠릅니다.

1. 자신의 이메일 계정을 가지고 있습니다(발신자의 이메일 주소)

두 가지 상황이 있습니다:

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;] ;
        }
    }
}

위 내용은 이메일을 보내기 위해 PHPMailer를 PHP에 도입하는 방법에 대한 설명(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제