Example #1
0
    if ($email == NULL || $email == '' || !check_email_address($email)) {
        echo json_encode(array('success' => FALSE, 'error' => 'INVALID'));
    } else {
        if (R::count('email', 'ip=:ip AND time>=:time', array(':ip' => $ip, ':time' => time() + 119 * 60)) >= 20) {
            echo json_encode(array('success' => FALSE, 'error' => 'LIMITATION'));
        } else {
            $bean = R::findOne('email', 'forwardto=:email AND time >= :time', array(':email' => $email, ':time' => time()));
            if ($bean) {
                $bean->time = time() + 120 * 60;
                R::store($bean);
                echo json_encode(array('success' => TRUE, 'email' => $bean->email . '@tempmail.ir'));
            } else {
                $rndmail = '';
                do {
                    $rndmail = generateRandomString(8);
                } while (R::count('email', 'email=:email AND time>=:time', array(':email' => $rndmail, ':time' => time())) > 0);
                $bean = R::dispense('email');
                $bean->email = $rndmail;
                $bean->forwardto = $email;
                $bean->time = time() + 120 * 60;
                $bean->ip = $ip;
                R::store($bean);
                echo json_encode(array('success' => TRUE, 'email' => $rndmail . '@tempmail.ir'));
            }
        }
    }
});
$app->run();
function check_email_address($email)
{
    if (!preg_match("/^[^@]{1,64}@[^@]{1,255}\$/", $email)) {