飞凤互联 发表于 2024-12-19 00:18:49

thinkphp 发送邮件代码 可以用于任何地方使用

thinkphp 发送邮件代码 可以用于任何地方使用 这个我是在做一个插件的时间 插件失败了 就会邮件通知 要及时修复也可以用到api接口失败时候通知 非常实用以下代码类和函数代码require '../../vendor/autoload.php';
use phpmailer\PHPMailer;
class Email
{
    public$error;
    private $obj;

    private function EmailInit()
    {
$this->obj = new PHPMailer();

      // 使用smtp方式发送
      $this->obj->IsSMTP();

      // 服务器host地址
      $this->obj->Host = 'smtp.qq.com';

      //smtp验证功能;
      $this->obj->SMTPAuth = true;

      // 端口
      $this->obj->Port = 465;

      // SSL方式加密
      //if(MyC('common_email_is_use_ssl', 0, true) == 1)
       // {
            $this->obj->SMTPSecure = 'ssl';
       // }

      // 邮箱用户名
      $this->obj->Username ='';

      // 邮箱密码
      $this->obj->Password = '';

      // 发件人
      $this->obj->From = '';

      // 发件人姓名
      $this->obj->FromName = '';

      // 是否开启html格式
      $this->obj->isHTML(true);

      // 设置编码
      $this->obj->CharSet = 'utf-8';
    }


    public function SendHtml($param = array())
    {
      if(empty($param['email']))
      {
            $this->error = '收件邮箱不能为空';
            return false;
      }
      if(empty($param['content']))
      {
            $this->error = '发送内容不能为空';
            return false;
      }
      if(empty($param['title']))
      {
            $this->error = '邮件标题不能为空';
            return false;
      }

      if(!empty($param['data']))
      {
            $param['content'] = str_replace('${user_name}', $param['data']['user_name'], $param['content']);
            $param['content'] = str_replace('${user_nickname}', $param['data']['user_nickname'], $param['content']);
            $param['content'] = str_replace('${user_mobile}', $param['data']['user_mobile'], $param['content']);
            $param['content'] = str_replace('${user_email}', $param['data']['user_email'], $param['content']);
            $param['content'] = str_replace('${order_no}', $param['data']['order_no'], $param['content']);
            $param['content'] = str_replace('${payment_name}', $param['data']['payment_name'], $param['content']);
            $param['content'] = str_replace('${goods}', $param['data']['goods'], $param['content']);
            $param['content'] = str_replace('${total_price}', $param['data']['total_price'], $param['content']);
            $param['content'] = str_replace('${order_model}', $param['data']['order_model'], $param['content']);
            $param['content'] = str_replace('${order_code}', $param['data']['order_code'], $param['content']);
            $param['content'] = str_replace('${alias}', $param['data']['alias'], $param['content']);
            $param['content'] = str_replace('${name}', $param['data']['name'], $param['content']);
            $param['content'] = str_replace('${address}', $param['data']['address'], $param['content']);
            $param['content'] = str_replace('${phone}', $param['data']['phone'], $param['content']);
            $param['content'] = str_replace('${user_note}', $param['data']['user_note'], $param['content']);
            $param['content'] = str_replace('${time}', $param['data']['time'], $param['content']);
            $param['content'] = str_replace('${client_type}', $param['data']['client_type'], $param['content']);
      }

      // 邮件初始化
      $this->EmailInit();

      // 收件人地址,可以替换成任何想要接收邮件的email信箱,格式("收件人email","收件人姓名")
      $this->obj->AddAddress($param['email'], isset($param['username']) ? $param['username'] : $param['email']);

      // 邮件标题
      $this->obj->Subject = $param['title'];

      // 邮件内容
      $this->obj->Body = $param['content'];

      // 邮件正文不支持HTML的备用显示
      $this->obj->AltBody = strip_tags($param['content']);

      // 发送邮件
      if($this->obj->Send())
      {
            return true;
      } else {
            $this->error = $this->obj->ErrorInfo;
      }
      return false;
    }
}这个是使用代码
    $email = new Email(); // 创建 Email 类的实例
    $param = [
    'email' => '收件人',
    'title' => '标题',
    'content' => '内容',
    ];
    if ($email->SendHtml($param){
    echo '发送成功';
    }else{
    echo '发送失败';
    }

页: [1]
查看完整版本: thinkphp 发送邮件代码 可以用于任何地方使用