$myconn->query("UPDATE " . db_table_pref . "subscribers SET subscriber_verify=1 WHERE ID=" . $subIDs . "") or die(mysqli_error($myconn)); # Send Double Opt-in Mail If Organization is Using Double Verification if ($orgVerifMode == 2) { $unSubLethe->SUBID = $subIDs; $unSubLethe->sendVerify(2); } # Print Thank Template echo $sysTemps['thank']['data']; } # Subscriber is single verified } else { if ($sverify == 1) { # Check If Double Opt-in Active for Organization if ($orgVerifMode == 2) { # Check Key if ($rt != encr($sverify_key)) { echo $sysTemps['erroroccurred']['data']; } else { # Subscriber Mark As Double Opt-in $myconn->query("UPDATE " . db_table_pref . "subscribers SET subscriber_verify=2 WHERE ID=" . $subIDs . "") or die(mysqli_error($myconn)); # Print Thank Template echo $sysTemps['thank']['data']; } } else { # Only Single Opt-in Works, Print Already Verified Template die($sysTemps['alreadyverified']['data']); } # Subscriber is double verified } else { if ($sverify == 2) { # Print Already Verified Template
if ($chkBL->num_rows != 0) { $chkBL->close(); jsonRet(false, 'EMAIL_IN_BLACKLIST'); } # Create Full Data $jsonObject = $lmail; # JSON Disabled for Static Fields /* $fullData[$jsonObject][] = array('label'=>'Group','content'=>$lgrp); $fullData[$jsonObject][] = array('label'=>'E-Mail','content'=>$lmail); if(!empty($lsname)) $fullData[$jsonObject][] = array('label'=>'Name','content'=>$lsname); if(!empty($lsweb)) $fullData[$jsonObject][] = array('label'=>'Web','content'=>$lsweb); if(!empty($lsdate)) $fullData[$jsonObject][] = array('label'=>'Date','content'=>$lsdate); if(!empty($lsphone)) $fullData[$jsonObject][] = array('label'=>'Phone','content'=>$lsphone); if(!empty($lscomp)) $fullData[$jsonObject][] = array('label'=>'Company','content'=>$lscomp); */ $fullData = json_encode($fullData); $subKey = encr(time() . $fullData); # Add Subscriber ** $exeAPI = $myconn->prepare("INSERT INTO \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "subscribers\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOID=" . $sr->Get('ID') . ",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGID=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_mail=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_name=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_web=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_date=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_phone=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_company=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_full_data=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_active=1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_verify=1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubscriber_key='" . $subKey . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tip_addr='" . $_SERVER['REMOTE_ADDR'] . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t") or die(mysqli_error($myconn)); $exeAPI->bind_param('isssssss', $lgrp, $lmail, $lsname, $lsweb, $lsdate, $lsphone, $lscomp, $fullData); $exeAPI->execute(); $exeAPI->close(); jsonRet(true, 'EMAIL_ADDED'); } else { jsonRet(false, 'EMAIL_EXISTS'); } $chkAPI->close(); } else { if ($act == 'remove') { $remAPI = $myconn->prepare("DELETE FROM " . db_table_pref . "subscribers WHERE OID=" . $sr->Get('ID') . " AND subscriber_mail=?") or die(mysqli_error($myconn)); $remAPI->bind_param('s', $lmail); $remAPI->execute();
if (!isset($_POST['campaign_reply_mail']) || !mailVal($_POST['campaign_reply_mail'])) { $errText .= '* ' . letheglobal_please_enter_a_reply_mail . '<br>'; } if (!isset($_POST['subAcc']) || !in_array(intval($_POST['subAcc']), $orgSubAccs)) { $errText .= '* ' . letheglobal_invalid_submission_account . '<br>'; } /* Run Camp */ if (isset($_POST['runCamp']) && $_POST['runCamp'] == "YES") { $runCamp = 0; } else { $runCamp = 2; } if ($errText == '') { $genDate = $_POST['launch_date'] . ' ' . $_POST['launch_hour'] . ':' . $_POST['launch_min'] . ':00'; $genDate = date('Y-m-d H:i:s', strtotime($genDate)); $campKey = encr($genDate . set_org_id . LETHE_AUTH_ID . uniqid(true)); $addCampaign = $myconn->prepare("UPDATE \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "campaigns\n\t\t\t\t\t\t\t\t\t\t\t\t SET\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubject=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdetails=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talt_details=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlaunch_date=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tattach=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twebOpt=" . $webOpt . ",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcampaign_type=0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcampaign_pos=" . $runCamp . ",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcampaign_sender_title=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcampaign_reply_mail=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcampaign_sender_account=?\n\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOID=" . set_org_id . "\n\t\t\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tID=?\n\t\t\t\t\t\t\t\t\t\t") or die(mysqli_error($myconn)); $addCampaign->bind_param('sssssssii', $_POST['subject'], $_POST['details'], $_POST['alt_details'], $genDate, $_POST['attach'], $_POST['campaign_sender_title'], $_POST['campaign_reply_mail'], $_POST['subAcc'], $ID); if ($addCampaign->execute()) { /* Update Groups */ $CID = $ID; $addGrps = $myconn->prepare("INSERT INTO\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "campaign_groups\n\t\t\t\t\t\t\t\t\t\t\t\t SET\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOID=" . set_org_id . ",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCID=?,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tGID=?\n\t\t\t\t\t\t\t\t\t\t") or die(mysqli_error($myconn)); foreach ($_POST['groups'] as $k => $v) { if (cntData("SELECT * FROM " . db_table_pref . "campaign_groups WHERE OID=" . set_org_id . " AND CID=" . $CID . " AND GID=" . $v . "") == 0) { $addGrps->bind_param('ii', $CID, $v); $addGrps->execute(); } } $addGrps->close(); /* Remove Groups Unselect */ $opGrps = $myconn->query("SELECT * FROM " . db_table_pref . "campaign_groups WHERE OID=" . set_org_id . " AND CID=" . $CID . "") or die(mysqli_error($myconn));
/* Check Data */ $mailChk->bind_param('s', $sub_mail); $mailChk->execute(); $mailChk->store_result(); if ($mailChk->num_rows == 0) { /* Add Record */ $jsonObject = $sub_mail; /* JSON Disabled Here $fullData[$jsonObject][] = array('label'=>'Group','content'=>$impGrp); $fullData[$jsonObject][] = array('label'=>'Name','content'=>$sub_name); $fullData[$jsonObject][] = array('label'=>'E-Mail','content'=>$sub_mail); $fullData = json_encode($fullData); */ $fullData = "[]"; $subKey = encr('lethe' . time() . $fullData . uniqid(true) . $sub_mail); $subVerifyKey = encr('letheVerify' . $subKey . uniqid(true)); $imp->bind_param('sssss', $sub_name, $sub_mail, $subKey, $fullData, $subVerifyKey); $imp->execute(); $recSc++; $sourceCntTemp++; } else { $recEx++; } } else { $recBL++; } } } $fetchData->free(); echo ' - ' . subscribers_counting_records . '..<br>
} else { $opUser = $myconn->prepare("SELECT * FROM " . db_table_pref . "users WHERE mail=?") or die(mysqli_error($myconn)); $opUser->bind_param('s', $_POST['pw_rem']); $opUser->execute(); $opUser->store_result(); if ($opUser->num_rows < 1) { $pwrm_res = mysql_prep(errMod(letheglobal_record_not_found, 'danger')); } else { $srm = new Statement_Result($opUser); $opUser->fetch(); # Load phpMailer basic mail sender # Start /* Design Receiver Data (Mail body could be used with system template) */ $rndPassEnc = encr('myLethe' . time() . rand() . uniqid(true)); $newPass = substr($rndPassEnc, 1, 12); $newPassEnc = encr($newPass); $mailBody = '<p>Hello ' . $srm->Get('real_name') . ',</p>'; $mailBody .= '<p><strong>Your new password:</strong> ' . $newPass . '</p>'; $mailBody .= '<p>Do not forget to change your password after logged in.</p>'; $mailBody .= '<p>Thank you!</p>'; $rcMail = showIn($srm->Get('mail'), 'page'); $rcName = showIn($srm->Get('real_name'), 'page'); $rcSubject = showIn(letheglobal_password_recovery, 'page'); $rcBody = $mailBody; $rcAltBody = $mailBody; $recData = array($rcMail => array('name' => $rcName, 'subject' => $rcSubject, 'body' => $rcBody, 'altbody' => $rcAltBody)); $sendMail = new lethe(); $sendMail->sub_mail_id = md5($rcMail . time()); $sendMail->sub_mail_receiver = $recData; $sendMail->sysSubInit(); if ($sendMail->sendPos) {
</tr> <tr> <td><strong>' . letheglobal_created . '</strong></td> <td>' . setMyDate($sr->Get('add_date'), 2) . '</td> </tr> <tr> <td><strong>' . letheglobal_ip_address . '</strong></td> <td>' . $sr->Get('ip_addr') . '</td> </tr> <tr> <td><strong>' . subscribers_verification_key . '</strong></td> <td><code>' . $sr->Get('subscriber_verify_key') . '</code></td> </tr> <tr> <td><strong>' . subscribers_verification_key . ' 2</strong></td> <td><code>' . encr($sr->Get('subscriber_verify_key')) . '</code></td> </tr> <tr> <td><strong>' . letheglobal_country . '</strong></td> <td>' . showIn($sr->Get('local_country'), 'page') . ' <span class="flag flag-' . strtolower(showIn($sr->Get('local_country_code'), 'page')) . '"></span></td> </tr> <tr> <td><strong>' . letheglobal_country_code . '</strong></td> <td>' . showIn($sr->Get('local_country_code'), 'page') . '</td> </tr> <tr> <td><strong>' . letheglobal_city . '</strong></td> <td>' . showIn($sr->Get('local_city'), 'page') . '</td> </tr> <tr> <td><strong>' . letheglobal_region . '</strong></td>
public function sendVerify($mod = 1) { global $myconn; global $LETHE_ORG_SETS; # Mod 1 - Single # Mod 2 - Double # Only OID and SUBID required for simple verification sender calling, Mod value can be changed into first verification page /* Load Verification Template */ $opTemp = $myconn->query("\n\t\t\t\t\t\t\t\t SELECT \n\t\t\t\t\t\t\t\t\t\t\tTEMP.temp_type, TEMP.temp_name, TEMP.temp_contents,\n\t\t\t\t\t\t\t\t\t\t\tORG.ID,ORG.orgName,ORG.public_key AS OPLKEY,\n\t\t\t\t\t\t\t\t\t\t\tSBR.ID AS SBRID,\n\t\t\t\t\t\t\t\t\t\t\tSBR.subscriber_name, SBR.subscriber_mail, SBR.subscriber_web, SBR.subscriber_date, SBR.subscriber_phone, SBR.subscriber_company,\n\t\t\t\t\t\t\t\t\t\t\tSBR.subscriber_verify,SBR.subscriber_verify_key,SBR.subscriber_key,\n\t\t\t\t\t\t\t\t\t\t\tORGSET.OID AS OSOID,\n\t\t\t\t\t\t\t\t\t\t\tORGSET.set_key,ORGSET.set_val\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t FROM \n\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "templates AS TEMP,\n\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "organizations AS ORG,\n\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "organization_settings AS ORGSET,\n\t\t\t\t\t\t\t\t\t\t\t" . db_table_pref . "subscribers AS SBR\n\t\t\t\t\t\t\t\t WHERE \n\t\t\t\t\t\t\t\t\t\t\tORG.ID=" . $this->OID . " \n\t\t\t\t\t\t\t\t\t AND \n\t\t\t\t\t\t\t\t\t\t\t(TEMP.OID=ORG.ID AND TEMP.temp_type='verification')\n\t\t\t\t\t\t\t\t\t AND\n\t\t\t\t\t\t\t\t\t\t\t(SBR.ID=" . $this->SUBID . ")\n\t\t\t\t\t\t\t\t\t AND\n\t\t\t\t\t\t\t\t\t\t\t(ORGSET.OID=" . $this->OID . ")\n\t\t\t\t\t\t\t\t\t AND\n\t\t\t\t\t\t\t\t\t\t\t(ORGSET.set_key='org_submission_account' OR ORGSET.set_key='org_sender_title' OR ORGSET.set_key='org_reply_mail')\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t") or die(mysqli_error($myconn)); if (mysqli_num_rows($opTemp) == 0) { $opTemp->free(); return false; } else { $opTempRs = $opTemp->fetch_assoc(); $replaced = $this->shortReplaces(array($opTempRs['temp_name'], $opTempRs['temp_contents'])); $mailTitle = $replaced[0]; $mailBody = $replaced[1]; /* Special System Codes */ $find = array('{SUBSCRIBER_NAME}', '{SUBSCRIBER_MAIL}', '{SUBSCRIBER_PHONE}', '{SUBSCRIBER_COMPANY}'); $replace = array($opTempRs['subscriber_name'], $opTempRs['subscriber_mail'], $opTempRs['subscriber_phone'], $opTempRs['subscriber_company']); $mailBody = str_replace($find, $replace, $mailBody); $mailTitle = str_replace($find, $replace, $mailTitle); /* Verify Code Replacer */ $mailBody = preg_replace('#\\{?(VERIFY_LINK\\[)(.*?)\\]}#', '<a href="' . lethe_root_url . 'lethe.newsletter.php?pos=verification&oid=' . $opTempRs['OPLKEY'] . '&sid=' . $opTempRs['subscriber_key'] . '&rt=' . ($mod == 1 ? $opTempRs['subscriber_verify_key'] : encr($opTempRs['subscriber_verify_key'])) . '">$2</a>', $mailBody); /* Send Mail */ $subAccs = explode(',', $LETHE_ORG_SETS['set_org_submission_account']); if (count($subAccs) < 1) { return false; } else { $OSMIDs = $subAccs[0]; } $this->OSMID = $OSMIDs; $this->sub_from_title = showIn($LETHE_ORG_SETS['set_org_sender_title'], 'page'); $this->sub_reply_mail = showIn($LETHE_ORG_SETS['set_org_reply_mail'], 'page'); $this->orgSubInit(); # Load Submission Settings $this->sub_mail_id = md5($opTempRs['subscriber_mail']); /* Design Receiver Data */ $rcMail = $opTempRs['subscriber_mail']; $rcName = $opTempRs['subscriber_name']; $rcSubject = trim($mailTitle); $rcBody = $mailBody; $rcAltBody = ''; $recData = array($rcMail => array('name' => $rcName, 'subject' => $rcSubject, 'body' => $rcBody, 'altbody' => $rcAltBody)); $this->sub_mail_receiver = $recData; $this->letheSender(); if ($this->sendPos) { /* Update Interval */ $intDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . "+2 minutes")); # Next submmission will execute 2 min later $myconn->query("UPDATE " . db_table_pref . "subscribers SET subscriber_verify_sent_interval='" . $intDate . "' WHERE ID=" . $this->SUBID . "") or die(mysqli_error($myconn)); $opTemp->free(); return true; } else { $opTemp->free(); return false; } } $opTemp->free(); return false; }