tp5通过PHPMailer发送邮件

时间:2017-09-02 00:30:27 类型:PHP
字号:    

通过PHP直接发送邮件是我们程序员实现会员注册, 通知提醒经常实现的一个功能, 然要直接做一个PHP邮件发送类, 那就是一件麻烦的事了,  其实完全自己做也没有那个必要, 因为网上已经有很好的邮件类了, 比如PHPMailer, 这里直接加载TP5下加载及使用方法:

1. 下载:   在项目下直接运行 composer require phpmailer/phpmailer

2. 建立一个控制器, 包含PHPMailer命名空间 

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
3. 直接使用

    

namespace app\controller;
use think\Controller;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

class Mailqqtest extends Controller
{
    public function index()
    {

    	$mail = new PHPMailer(true);
        try {
    //Server settings
            $mail->SMTPDebug = 0;                                 
// Enable verbose debug output
            $mail->CharSet='UTF-8';
            $mail->isSMTP();                                     
 // 使用SMTP服务// Set mailer to use SMTP
            $mail->Host = 'smtp.qq.com'; 
// 发送方的SMTP服务器地址// Specify main and backup SMTP servers
            $mail->SMTPAuth = true;                               
// 是否使用身份验证// Enable SMTP authentication
            $mail->Username = '3168765867';                
 // 发送方的QQ邮箱用户名,就是自己的邮箱名// SMTP username
            $mail->Password = 'sdfsdfdsfsdf';                           
// 发送方的邮箱密码,不是登录密码,是qq的第三方授权登录码,要自己去开启,在邮箱的设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 里面// SMTP password, 阿里去企业邮箱, 就是登陆密码了
            $mail->SMTPSecure = 'ssl';                            
// 使用ssl协议方式,// Enable TLS encryption, `ssl` also accepted
            $mail->Port = 465;                                  
 // QQ邮箱的ssl协议方式端口号是465/587 // TCP port to connect to

            //Recipients
            $mail->setFrom('3168765867@qq.com', 'zhuangzi');  
// 设置发件人信息,如邮件格式说明中的发件人,
            $mail->addAddress('sujianzhuang@126.com', 'Carl');     // Add a recipient
           // $mail->addAddress('ellen@example.com');               // Name is optional
           // $mail->addReplyTo('3168765867@qq.com', '苏建庄');  
// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
           // $mail->addCC('cc@example.com'); 
// 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件)
            //$mail->addBCC('bcc@example.com');
// 设置秘密抄送人(这个人也能收到邮件)

            //Attachments
            $mail->addAttachment(ROOT_PATH.'public/uploads/20170614/151faab81b21708da697f5ec566dc4ad.jpg');         //添加附件 Add attachments
            $mail->addAttachment(ROOT_PATH.'public/images/01.gif', '附件图片.gif');    // Optional name

            //Content
            $mail->isHTML(true);                                  
// Set email format to HTML
            $mail->Subject = '邮箱发送测试';              
 // 邮件标题
            $mail->Body    = '这里是邮件信息主题'; 
 // 邮件正文
           // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
 // 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用

            $mail->send();
            echo '邮箱已经被发送';
            }
         catch (Exception $e) {
            echo '邮件发送失败';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
         }
       // return "邮箱测试";
    }


邮件发送控制器