• 邮件发送


    1.安装PHPMailer扩展。

    composer require phpmailer/phpmailer
    

    2.配置文件设置邮件信息

    'email_config'=>[
            'mail_host' =>  'smtp.163.com',//邮件发送域名
            'mail_port' =>  '994',//邮件发送端口,994/465
            'mail_user' =>  'test@163.com',//邮箱账号
            'mail_password' =>  'XXXXXXXXX',//邮件发送授权码
            'mail_form' =>  'test@163.com',//显示的发件人邮箱(邮箱账号)
            'mail_secure' =>  'ssl'//ssl网络模式
        ],
    

      

    3.封装邮件发送类

    <?php
    /**
     * 邮件助手类
     */
    
    namespace app\service;
    
    use PHPMailer\PHPMailer\PHPMailer;
    use think\Config;
    use think\Exception;
    use think\Url;
    
    
    // https://packagist.org/packages/phpmailer/phpmailer
    class Mail
    {
        private $Form = '';
        private $Host='';
        private $Username='';
        private $Password = '';
        private $Secure = '';
        private $Port = '';
    
        public function __construct()
        {
            $config = Config::get('email_config');
            $this->Form = $config['mail_form'];
            $this->Host = $config['mail_host'];
            $this->Username = $config['mail_user'];
            $this->Password = $config['mail_password'];
            $this->Secure = $config['mail_secure'];
            $this->Port = $config['mail_port'];
        }
    
        /**
         * @param $toEmail 接受邮件用户
         * @param $Subject 邮件标题
         * @param null $content 邮件内容
         * @param null $html 邮件模板
         * @param null $attachment 邮件附件
         * @throws \PHPMailer\PHPMailer\Exception
         *
         */
        public function sendEmail($toEmail,$Subject,$content=null,$html=null,$attachment=null){
            $email = new PHPMailer();
    
            try {
                // 设置邮件格式
                $email->isSMTP();
                // 设置有见程序使用SMTP 格式
                $email->Host = $this->Host;
                // 设置有见内容的编码
                $email->CharSet = 'UTF-8';
                // 启用SMTP验证
                $email->SMTPAuth = true;
                // SMTP username
                $email->Username = $this->Username;
                // SMTP password
                $email->Password = $this->Password;
                // 启用TLS加密,`ssl`也被接受
                $email->SMTPSecure = $this->Secure;
                // 连接的TCP端口
                $email->Port = $this->Port;
                //设置发件人
                $email->setFrom($this->Form, '讯飞产业加速中心');
    
                // 设置收件人
                $email->addAddress($toEmail);
                // 设置如果收件人回复邮件  直接显示我的邮件
                $email->addReplyTo($this->Form);
                if ($attachment){
                    $email->AddAttachment('./PDF/'.basename($attachment),basename($attachment));
                }
    
                $email->isHTML();
                $email->Subject = $Subject;
                if ($html){
                    $content = file_get_contents($html);
                }
    
                $email->Body = $content;
                if ($email->send()){
                    return 'success';
                }else{
                    echo "Mailer Error: ".$email->ErrorInfo;// 输出错误信息
                }
            }catch (Exception $e){
                echo "Mail Error:" . $e->ErrorInfo;
            }
    
        }
    
        
    
    
    
    }
    

    4.控制器调用

    $sendEmail = new Mail();
                $sendEmail->sendEmail($admin_id['email'],'邮件标题','邮件内容');
    

      



  • 相关阅读:
    XPath中的text()和string()区别(转)
    (转)Ubuntu 16.04 安裝Docker(PS:本文适用amd64位的ubuntu系统)
    python 爬取世纪佳缘,经过js渲染过的网页的爬取
    Python中的join()函数的用法
    Ubuntu下修改ubuntu源,完成Redis Desktop Manager的安装
    Ubuntu16.04安装Redis
    Scrapy爬虫实例教程(二)---数据存入MySQL
    Ubuntu16.04安装mongodb 及使用
    关闭和启动网卡
    网络之端口的作用
  • 原文地址:https://www.cnblogs.com/sisl/p/15633232.html
Copyright © 2020-2023  润新知