PHP使用PHPMailer发送邮件

标签: PHP  PHPMailer  发送邮件

背景知识:

  1. 邮件的使用场景一般有很多,例如用户注册,消息通知等等,本案例以用户注册发送验证码为场景
  2. PHPMailer是一个PHP相关的邮件类,使用它可以很轻松的发送邮件

1.使用composer安装PHPMailer,PHPMailer的github主页:PHPMailer下载 。例如可以在桌面创建一个测试目录phpmail,按住shift+鼠标右键,选择在此处打开命令窗口,输入如下命令安装:

composer require phpmailer/phpmailer

2.由于发送邮件需要服务器,这里建议使用第三方,我这边使用的是网易邮箱。首先登陆网易邮箱,选择顶部导航栏设置的子栏目POP3/SMTP/IMAP,具体操作如下:

然后选择相应的服务并保存:

之后选择左侧菜单栏的客户端授权密码,设置授权密码,需要手机短信验证:

以上步骤设置好之后,就可以进入编码工作了。

3.第一步用composer安装好PHPMailer之后,在phpmail目录中会有verdor目录以及composer.json,composer.lock两个文件,vendor目录中存放的是PHPMailer的核心代码与composer相关,至于其他两个文件也是与composer相关的,这里不做阐述了。在phpmail目录下新建index.php,写上如下代码:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
class Email{

    public static function sendEmail($email,$code){
        $mail = new PHPMailer(true);
        try {

            //使用STMP服务
            $mail->isSMTP();

            //这里使用我们第二步设置的stmp服务地址
            $mail->Host = "smtp.163.com";

            //设置是否进行权限校验
            $mail->SMTPAuth = true;

            //第二步中登录网易邮箱的账号
            $mail->Username = "你的邮箱账号";

            //客户端授权密码,注意不是登录密码
            $mail->Password = "授权密码";

            //使用ssl协议
            $mail->SMTPSecure = 'ssl';

            //端口设置
            $mail->Port = 465;

            //字符集设置,防止中文乱码
            $mail->CharSet= "utf-8";

            //设置邮箱的来源,邮箱与$mail->Username一致,名称随意
            $mail->setFrom("邮箱", "名称");

            //设置收件的邮箱地址
            $mail->addAddress($email);

            //设置回复地址,一般与来源保持一直
            $mail->addReplyTo("邮箱", "名称");

            $mail->isHTML(true);
            //标题
            $mail->Subject = '欢迎注册三斤商城';
            //正文
            $mail->Body    = '你本次注册的验证码为:'.$code.',请在十分钟之内使用它!';
            $mail->send();
            echo 'ok';
//            return array('errCode'=>0,'msg'=>'ok');
        } catch (Exception $e) {
            echo $e;
//            return array('errCode'=>-1,'msg'=>$mail->ErrorInfo);
        }
    }
}

Email::sendEmail(邮箱,验证码);

4.运行index.php即可完成邮件的发送。以上就是使用PHPMailer发送邮件的全部步骤,是不是很简单呀。当然PHPMailer的功能不仅只有这些,它还有发送附件等等其他功能,感兴趣的小伙可以自行研究。

原文链接:加载失败,请重新获取