/** * 发送消息 */ public function indexOp() { $model_storemsgcron = Model('mail_cron'); $cron_array = $model_storemsgcron->getMailCronList(array(), $this->_num); if (!empty($cron_array)) { $email = new Uk86Email(); $mail_array = array(); foreach ($cron_array as $val) { $return = $email->uk86_send_sys_email($val['mail'], $val['subject'], $val['contnet']); if ($return) { // 记录需要删除的id $mail_array[] = $val['mail_id']; } } // 删除已发送的记录 $model_storemsgcron->delMailCron(array('mail_id' => array('in', $mail_array))); } }
/** * 手机端找回密码发送验证码 */ public function wap_makecodeOp() { $email_to = $_GET['email']; //验证邮箱 $email_result = Model()->table('member')->where(array('member_email' => $email_to))->field('member_id')->find(); if (empty($email_result['member_id'])) { exit(json_encode(array('state' => false, 'msg' => '邮箱地址不正确,请核对邮箱'))); } $code = uk86_getNchash(); $seccode = uk86_makeSeccode($code); $email = new Uk86Email(); $subject = C('site_name') . '找回密码验证'; $message = '您在' . C('site_name') . '找回密码使用的验证码是' . $seccode . ',请在30分钟内完成验证。'; $result = $email->uk86_send_sys_email($email_to, $subject, $message); if ($result) { exit(json_encode(array('state' => true, 'msg' => $code, 'member_id' => $email_result['member_id']))); } exit(json_encode(array('state' => false, 'msg' => '邮件发送失败'))); }
/** * 找回密码的发邮件处理 */ public function find_passwordOp() { Uk86Language::uk86_read('home_login_register'); $lang = Uk86Language::uk86_getLangContent(); $result = uk86_chksubmit(true, true, 'num'); if ($result !== false) { if ($result === -11) { showDialog('非法提交'); } elseif ($result === -12) { showDialog('验证码错误'); } } if (empty($_POST['email'])) { showDialog($lang['login_password_input_email']); } if (Uk86process::uk86_islock('forget')) { showDialog($lang['nc_common_op_repeat'], 'reload'); } $member_model = Model('member'); $member = $member_model->getMemberInfo(array('member_email' => $_POST['email'])); if (empty($member) or !is_array($member)) { Uk86process::uk86_addprocess('forget'); showDialog($lang['login_password_email_not_exists'], 'reload'); } // if(empty($_POST['email'])){ // showDialog($lang['login_password_input_email'],'reload'); // } // if(strtoupper($_POST['email'])!=strtoupper($member['member_email'])){ // Uk86process::uk86_addprocess('forget'); // showDialog($lang['login_password_email_not_exists'],'reload'); // } Uk86process::uk86_clear('forget'); //产生密码 // $new_password = uk86_random(15); // if(!($member_model->editMember(array('member_id'=>$member['member_id']),array('member_passwd'=>md5($new_password))))){ // showDialog($lang['login_password_email_fail'],'reload'); // } $temp = uk86_random(14); $_SESSION['temp_identifying_code'] = $temp; $_SESSION['temp_identifying_time'] = time(); // 当然这种机制是有缺陷的,可以扩展uuid等构建缓存等。 $_SESSION['temp_user_id'] = $member['member_id']; $model_tpl = Model('mail_templates'); $tpl_info = $model_tpl->getTplInfo(array('code' => 'reset_pwd')); $param = array(); $param['site_name'] = C('site_name'); $param['user_name'] = $member['member_name']; $param['site_url'] = SHOP_SITE_URL . '/index.php?act=login&op=forget_password_identify&identity_code=' . $temp; $subject = uk86_ncReplaceText($tpl_info['title'], $param); $message = uk86_ncReplaceText($tpl_info['content'], $param); $email = new Uk86Email(); $result = $email->uk86_send_sys_email($_POST["email"], $subject, $message); showDialog('修改密码链接已经发送至您的邮箱,请在三十分钟内尽快更改密码!', '', 'succ', '', 5); }
/** * 测试邮件发送 * * @param * @return */ public function email_testingOp() { /** * 读取语言包 */ $lang = Uk86Language::uk86_getLangContent(); $email_host = trim($_POST['email_host']); $email_port = trim($_POST['email_port']); $email_addr = trim($_POST['email_addr']); $email_id = trim($_POST['email_id']); $email_pass = trim($_POST['email_pass']); $email_test = trim($_POST['email_test']); $subject = $lang['test_email']; $site_url = SHOP_SITE_URL; $site_title = C('site_name'); $message = '<p>' . $lang['this_is_to'] . "<a href='" . $site_url . "' target='_blank'>" . $site_title . '</a>' . $lang['test_email_send_ok'] . '</p>'; // if ($email_type == '1'){ $obj_email = new Uk86Email(); $obj_email->uk86_set('email_server', $email_host); $obj_email->uk86_set('email_port', $email_port); $obj_email->uk86_set('email_user', $email_id); $obj_email->uk86_set('email_password', $email_pass); $obj_email->uk86_set('email_from', $email_addr); $obj_email->uk86_set('site_name', $site_title); $result = $obj_email->uk86_send($email_test, $subject, $message); // }else { // $result = @mail($email_test,$subject,$message); // } if ($result === false) { $message = $lang['test_email_send_fail']; if (strtoupper(CHARSET) == 'GBK') { $message = Uk86Language::uk86_getUTF8($message); } uk86_showMessage($message, '', 'json'); } else { $message = $lang['test_email_send_ok']; if (strtoupper(CHARSET) == 'GBK') { $message = Uk86Language::uk86_getUTF8($message); } uk86_showMessage($message, '', 'json'); } }
/** * 发放单个F码操作 */ public function fcode_grand_oneOp() { $goods_commonid = intval($_GET['goods_commonid']); $goods_info = Model()->table('goods')->field('goods_id, goods_storage')->where(array('goods_commonid' => $goods_commonid))->find(); $free_model = Model('free'); $owner_ids = $free_model->where(array('free_goods_id' => $goods_info['goods_id']))->field('free_owner_id, free_owner_name')->select(); //判断库存 $sum = count($owner_ids) + 1; if (intval($goods_info['goods_storage']) < $sum) { showDialog('该F码商品库存不足', '', 'error'); } //判断F码剩余数量 $fcode_num = Model('goods_fcode')->where(array('fc_fafang' => 0, 'goods_commonid' => $goods_commonid))->count(); if ($fcode_num < 1) { showDialog('该F码商品F码数量不足', '', 'error'); } $insert_array = array(); $insert_array['free_goods_id'] = intval($goods_info['goods_id']); $insert_array['free_goods_commonid'] = $goods_commonid; $insert_array['free_grand_time'] = time(); $insert_array['free_owner_id'] = intval($_GET['member_id']); $insert_array['store_id'] = intval($_SESSION['store_id']); $insert_array['get_type'] = '店铺发送'; $member_info = Model()->table('member')->where(array('member_id' => $insert_array['free_owner_id']))->field('member_name, member_mobile, member_email')->find(); $insert_array['free_owner_name'] = $member_info['member_name']; //取一条F码,并修改F码发放状态 $fcode_info = Model()->table('goods_fcode')->field('fc_id, fc_code')->where(array('fc_fafang' => 0, 'fc_state' => 0, 'goods_commonid' => $goods_commonid))->find(); Model()->table('goods_fcode')->where(array('fc_id' => $fcode_info['fc_id']))->update(array('fc_fafang' => 1)); $insert_array['fcode_id'] = intval($fcode_info['fc_id']); $insert_array['free_code'] = $fcode_info['fc_code']; //写入F码记录表 $result = Model('free')->insert($insert_array); //发送短信通知用户 if (!empty($member_info['member_mobile'])) { $sms = new Uk86Sms(); $message = '尊敬的用户,店铺' . $_SESSION['store_name'] . '于' . date('Y-m-d H:i') . '给您发送了F码,请进入商城确认。'; $sms->uk86_send($member_info['member_mobile'], $message); } //发送邮件通知 if (!empty($member_info['member_email'])) { // $model_tpl = Model('mail_templates'); // $tpl_info = $model_tpl->getTplInfo(array('code'=>'f_code_send')); // $param = array(); // $param['site_name'] = C('site_name'); // $param['user_name'] = $member_info['member_name']; // $param['site_url'] = SHOP_SITE_URL; // $param['store_name'] = $_SESSION['store_name']; // $param['date'] = date('Y-m-d H:i'); // $subject = uk86_ncReplaceText($tpl_info['title'],$param); // $message = uk86_ncReplaceText($tpl_info['content'],$param); $subject = C('site_name') . 'F码发放'; $message = '尊敬的用户,店铺' . $_SESSION['store_name'] . '于' . date('Y-m-d H:i') . '给您发送了F码,请进入商城确认。'; $email = new Uk86Email(); $email->uk86_send_sys_email($member_info['member_email'], $subject, $message); } if ($result) { uk86_showMessage('操作成功'); } else { uk86_showMessage('操作失败'); } }
/** * 统一发送身份验证码 */ public function send_auth_codeOp() { if (!in_array($_GET['type'], array('email', 'mobile'))) { exit; } $model_member = Model('member'); $member_info = $model_member->getMemberInfoByID($_SESSION['member_id'], 'member_email,member_mobile'); $verify_code = rand(100, 999) . rand(100, 999); $data = array(); $data['auth_code'] = $verify_code; $data['send_acode_time'] = TIMESTAMP; $update = $model_member->editMemberCommon($data, array('member_id' => $_SESSION['member_id'])); if (!$update) { exit(json_encode(array('state' => 'false', 'msg' => '系统发生错误,如有疑问请与管理员联系'))); } $model_tpl = Model('mail_templates'); $tpl_info = $model_tpl->getTplInfo(array('code' => 'authenticate')); $param = array(); $param['send_time'] = date('Y-m-d H:i', TIMESTAMP); $param['verify_code'] = $verify_code; $param['site_name'] = C('site_name'); $subject = uk86_ncReplaceText($tpl_info['title'], $param); $message = uk86_ncReplaceText($tpl_info['content'], $param); if ($_GET['type'] == 'email') { $email = new Uk86Email(); $result = $email->uk86_send_sys_email($member_info["member_email"], $subject, $message); } elseif ($_GET['type'] == 'mobile') { $sms = new Uk86Sms(); $result = $sms->uk86_send($member_info["member_mobile"], $message); } if ($result) { exit(json_encode(array('state' => 'true', 'msg' => '验证码已发出,请注意查收'))); } else { exit(json_encode(array('state' => 'false', 'msg' => '验证码发送失败'))); } }
/** * 修改支付密码时发送校验码 */ public function getCodeByPaypwdOp() { $value = $_GET['value']; if ($value == '') { exit(json_encode(array('state' => false, 'msg' => '请选择校验码接收方式'))); } $member_info = Model()->table('member')->where($this->condition)->field('member_mobile, member_email')->find(); $verify_code = rand(100, 999) . rand(100, 999); //校验码存入kookie uk86_setNcCookie('pay_code_' . $_SESSION['member_id'], $verify_code, '1800'); if ($value == 'mobile') { $sms = new Uk86Sms(); $content = '【' . C('site_name') . '】您与' . date('Y-m-d H:i') . '设置支付密码校验码为:' . $verify_code . ',30分钟有效。'; $result = $sms->uk86_send(trim($member_info['member_mobile']), $content); $msg = '校验码已成功发送至您的手机,请在30分钟内完成验证'; } elseif ($value == 'email') { $email = new Uk86Email(); $subject = C('site_name') . '安全校验码'; $message = '【' . C('site_name') . '】您与' . date('Y-m-d H:i') . '设置支付密码校验码为:' . $verify_code . ',请在30分钟内完成验证。'; $result = $email->uk86_send_sys_email(trim($member_info['member_email']), $subject, $message); $msg = '校验码已成功发送至您的邮箱,请在30分钟内完成验证'; } if ($result) { exit(json_encode(array('state' => true, 'msg' => $msg))); } else { exit(json_encode(array('state' => false, 'msg' => '校验码发送失败,请联系管理员'))); } }