TA的每日心情 | 奋斗 6 天前 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到 766680204
|
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 '发送失败';
- }
复制代码
|
|