0, 'smtp_host' => empty($smtp_host) ? '' : $smtp_host, 'smtp_port' => empty($smtp_port) ? '' : $smtp_port, 'smtp_name' => empty($smtp_name) ? '' : $smtp_name, 'smtp_account' => empty($smtp_account) ? '' : $smtp_account, 'smtp_send_name' => empty($smtp_send_name) ? '' : $smtp_send_name, 'email' => empty($email) ? '' : (is_array($email) ? implode(', ', $email) : $email), 'title' => empty($title) ? '' : $title, 'template_value' => empty($template_value) ? '' : $template_value, 'template_var' => empty($template_var) ? '' : (is_array($template_var) ? json_encode($template_var, JSON_UNESCAPED_UNICODE) : $template_var), 'add_time' => time(), ]; $data['id'] = Db::name('EmailLog')->insertGetId($data); if($data['id'] > 0) { // 邮件添加钩子 $hook_name = 'plugins_service_email_log_add'; MyEventTrigger($hook_name, [ 'hook_name' => $hook_name, 'is_backend' => true, 'data' => $data, 'data_id' => $data['id'], ]); return DataReturn(MyLang('insert_success'), 0, $data); } return DataReturn(MyLang('insert_fail'), -1); } /** * 邮件回调 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2023-11-19 * @desc description * @param [int] $log_id [日志id] * @param [int] $status [发送状态(0未发送,1已发送,2已失败)] * @param [int] $tsc [耗时(秒)] * @param [string] $reason [失败原因] */ public static function EmailLogResponse($log_id, $status, $tsc, $reason = '') { return Db::name('EmailLog')->where(['id'=>$log_id])->update([ 'status' => intval($status), 'tsc' => intval($tsc), 'reason' => $reason, 'upd_time' => time(), ]); } /** * 删除 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-11-18 * @desc description * @param [array] $params [输入参数] */ public static function EmailLogDelete($params = []) { // 参数是否有误 if(empty($params['ids'])) { return DataReturn(MyLang('data_id_error_tips'), -1); } // 是否数组 if(!is_array($params['ids'])) { $params['ids'] = explode(',', $params['ids']); } // 删除操作 if(Db::name('EmailLog')->where(['id'=>$params['ids']])->delete()) { return DataReturn(MyLang('delete_success'), 0); } return DataReturn(MyLang('delete_fail'), -100); } /** * 清空全部 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-11-18 * @desc description * @param [array] $params [输入参数] */ public static function EmailLogAllDelete($params = []) { $where = [ ['id', '>', 0] ]; if(Db::name('EmailLog')->where($where)->delete() === false) { return DataReturn(MyLang('operate_fail'), -100); } return DataReturn(MyLang('operate_success')); } } ?>