找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 20|回复: 0

[技巧分享] thinkphp 发送邮件代码 可以用于任何地方使用

[复制链接]
  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    766680204
    发表于 3 天前 | 显示全部楼层 |阅读模式

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

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

    这个我是在做一个插件的时间 插件失败了 就会邮件通知 要及时修复

    也可以用到api接口失败时候通知 非常实用

    以下代码类和函数代码

    1. require '../../vendor/autoload.php';
    2. use phpmailer\PHPMailer;
    3. class Email
    4. {
    5.     public  $error;
    6.     private $obj;

    7.     private function EmailInit()
    8.     {
    9. $this->obj = new PHPMailer();

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

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

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

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

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

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

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

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

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

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

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


    36.     public function SendHtml($param = array())
    37.     {
    38.         if(empty($param['email']))
    39.         {
    40.             $this->error = '收件邮箱不能为空';
    41.             return false;
    42.         }
    43.         if(empty($param['content']))
    44.         {
    45.             $this->error = '发送内容不能为空';
    46.             return false;
    47.         }
    48.         if(empty($param['title']))
    49.         {
    50.             $this->error = '邮件标题不能为空';
    51.             return false;
    52.         }

    53.         if(!empty($param['data']))
    54.         {
    55.             $param['content'] = str_replace('${user_name}', $param['data']['user_name'], $param['content']);
    56.             $param['content'] = str_replace('${user_nickname}', $param['data']['user_nickname'], $param['content']);
    57.             $param['content'] = str_replace('${user_mobile}', $param['data']['user_mobile'], $param['content']);
    58.             $param['content'] = str_replace('${user_email}', $param['data']['user_email'], $param['content']);
    59.             $param['content'] = str_replace('${order_no}', $param['data']['order_no'], $param['content']);
    60.             $param['content'] = str_replace('${payment_name}', $param['data']['payment_name'], $param['content']);
    61.             $param['content'] = str_replace('${goods}', $param['data']['goods'], $param['content']);
    62.             $param['content'] = str_replace('${total_price}', $param['data']['total_price'], $param['content']);
    63.             $param['content'] = str_replace('${order_model}', $param['data']['order_model'], $param['content']);
    64.             $param['content'] = str_replace('${order_code}', $param['data']['order_code'], $param['content']);
    65.             $param['content'] = str_replace('${alias}', $param['data']['alias'], $param['content']);
    66.             $param['content'] = str_replace('${name}', $param['data']['name'], $param['content']);
    67.             $param['content'] = str_replace('${address}', $param['data']['address'], $param['content']);
    68.             $param['content'] = str_replace('${phone}', $param['data']['phone'], $param['content']);
    69.             $param['content'] = str_replace('${user_note}', $param['data']['user_note'], $param['content']);
    70.             $param['content'] = str_replace('${time}', $param['data']['time'], $param['content']);
    71.             $param['content'] = str_replace('${client_type}', $param['data']['client_type'], $param['content']);
    72.         }

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

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

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

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

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

    83.         // 发送邮件
    84.         if($this->obj->Send())
    85.         {
    86.             return true;
    87.         } else {
    88.             $this->error = $this->obj->ErrorInfo;
    89.         }
    90.         return false;
    91.     }
    92. }
    复制代码

    这个是使用代码

    1.     $email = new Email(); // 创建 Email 类的实例
    2.     $param = [
    3.     'email' => '收件人',
    4.     'title' => '标题',
    5.     'content' => '内容',
    6.     ];
    7.     if ($email->SendHtml($param){
    8.     echo '发送成功';
    9.     }else{
    10.     echo '发送失败';
    11.     }
    复制代码


    回复

    使用道具 举报

    网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

    GMT+8, 2024-12-22 01:12

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表