Example #1
0
function sendEmail($to, $from, $subject, $body, $cc = FALSE, $bcc = FALSE)
{
    if (is_array($to)) {
        foreach ($to as $addr) {
            if (!validEmailAddress($addr)) {
                return FALSE;
            }
        }
        $to = join(', ', $to);
    } else {
        if (!validEmailAddress($to)) {
            return FALSE;
        }
    }
    if ($cc && is_array($cc)) {
        foreach ($cc as $addr) {
            if (!validEmailAddress($addr)) {
                return FALSE;
            }
        }
        $cc = join(', ', $cc);
    } else {
        if ($cc) {
            if (!validEmailAddress($cc)) {
                return FALSE;
            }
        }
    }
    if ($bcc && is_array($bcc)) {
        foreach ($bcc as $addr) {
            if (!validEmailAddress($addr)) {
                return FALSE;
            }
        }
        $bcc = join(', ', $bcc);
    } else {
        if ($bcc) {
            if (!validEmailAddress($bcc)) {
                return FALSE;
            }
        }
    }
    $headers = 'From: ' . $from . "\n" . 'Reply-To: ' . $from . "\n" . 'X-Mailer: Rubix Consulting, Inc. Postfix Web Autoreply';
    if ($cc) {
        $headers .= "\n" . 'Cc: ' . $cc . "\n";
    }
    if ($bcc) {
        $headers .= "\n" . 'Bcc: ' . $bcc . "\n";
    }
    $additional = '-f' . $from;
    mail($to, $subject, $body, $headers, $additional);
}
function getLocalForwards()
{
    $sql = 'SELECT' . '  alias_id,' . '  (username || \'@\' || domain) AS email,' . '  domain,' . '  destination,' . '  active' . '  FROM virtual_aliases' . '  JOIN virtual_domains USING(domain_id)' . '  WHERE (username || \'@\' || domain) NOT IN (' . quotedAdminUserString() . '  )' . '  ORDER BY domain, username, destination';
    $rows = db_getrows($sql);
    $ret = array();
    foreach ($rows as $row) {
        if (!validEmailAddress($row['destination']) && validUserName($row['destination'])) {
            $row['aliases'] = getNumLocalAliasDestination($row['destination']);
            $ret[] = $row;
        }
    }
    return $ret;
}
Example #3
0
 function invite($qref, $emails, $message)
 {
     global $USER;
     //check quiz owner
     $q = $this->getQuizForUser($qref, $USER->userid);
     if (!$q) {
         return false;
     }
     $mail = new Mailer();
     //split up the email addresses
     $emailArray = preg_split("( |,)", $emails);
     $groupname = "Invited by email - " . $q->title . " - " . date('d-M-Y');
     $groupid = $this->addGroup($groupname);
     foreach ($emailArray as $email) {
         if (trim($email) != "") {
             if (validEmailAddress($email)) {
                 $userid = $this->addPendingUser($email);
                 $this->addUserGroupQuiz($userid, $groupid, $q->quizid);
                 $mail->invite($email, $USER->firstname, $q->title, $q->ref);
             }
         }
     }
     return true;
 }
Example #4
0
function setUserLocal($value, $email = FALSE)
{
    if (!$email) {
        $email = $_SESSION['user']['email'];
    }
    if (!validEmailAddress($email)) {
        return;
    } else {
        if (!userExists($email)) {
            return;
        } else {
            if (isSiteAdmin(getUserId($email))) {
                ## site admin should not manipulate own delivery
                return;
            }
        }
    }
    $parts = split('@', $email);
    if ($email != $_SESSION['user']['email']) {
        $adminDomains = getAdminDomains();
        if (!in_array($parts[1], $adminDomains)) {
            return;
        }
    }
    if ($value !== 't' && $value !== 'f') {
        if (!$value) {
            $value = 'f';
        } else {
            $value = 't';
        }
    }
    $count = 0;
    if ($value == 'f') {
        ## user must have at least one active forward to disable local delivery
        $count = count(getActiveUserForwards($email));
    }
    if ($value == 'f' && $count == 0) {
        ## TODO notify user
        $value = 't';
    }
    $conditions = array('username' => $parts[0], 'domain_id' => getDomainId($parts[1]), 'destination' => $email);
    db_update('virtual_aliases', array('active' => $value), $conditions);
}
echo translate("NEWSLETTER_TITLE");
?>
</title>
        <link rel="stylesheet" href="css/layout.css" type="text/css" media="screen" />
        <!--[if lte IE 8]>
        <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen" />
        <script src="js/html5shiv.js"></script><![endif]-->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script>!window.jQuery && document.write(unescape('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
    </head>
    <body>
        <section id="main" class="column">
            <article class="module width_full">
            <?php 
if (isset($list_id) && !empty($list_id) && isValidNewsletter($cnx, $row_config_globale['table_listsconfig'], $list_id) && isset($email_addr)) {
    if (!validEmailAddress($email_addr)) {
        echo '<header><h3>' . translate("SUBSCRIPTION_TITLE") . '</h3></header>';
        echo "<h4 class='alert_error'>" . translate("EMAIL_ADDRESS_NOT_VALID") . "</div>";
        exit;
    }
    switch ($op) {
        case "join":
            echo '<header><h3>' . translate("SUBSCRIPTION_TITLE") . '</h3></header>';
            $c = empty($c) && !empty($_POST['c']) ? $_POST['c'] : "";
            if (empty($c) || $_POST['c'] != $_SESSION['c']) {
                $_SESSION['new_sub'] = $email_addr;
                echo '<form method="post" action="">
                                    <div class="module_content">
                                        <fieldset>
                                            <label>Confirmer votre inscription en saisissant le code ci-dessous :</label>
                                            <label><img src="c.php" /></label>
Example #6
0
         $liste = fopen($local_filename, 'r');
     }
 } else {
     $liste = fopen($import_file['tmp_name'], 'r');
 }
 if ($tmp_subdir_writable) {
     $tx_import = 0;
     while (!feof($liste)) {
         $mail_importe = fgets($liste, 4096);
         if (strlen($mail_importe) == 2) {
             // dummy and pretty function ;-) yeah !
         } else {
             $mail_importe = str_replace("'", "", $mail_importe);
             $mail_importe = str_replace('"', "", $mail_importe);
             $mail_importe = strtolower(trim($mail_importe));
             if (!empty($mail_importe) && validEmailAddress($mail_importe)) {
                 $added = add_subscriber($cnx, $row_config_globale['table_email'], $list_id, $mail_importe);
                 if ($added == -1) {
                     $subscriber_op_msg .= "<h4 class='alert_error'>" . translate("ERROR_ALREADY_SUBSCRIBER", "<b>{$mail_importe}</b>") . ".</h4>";
                 } elseif ($added == 2) {
                     $subscriber_op_msg .= "<h4 class='alert_success'>" . translate("SUBSCRIBER_ADDED", "<b>{$mail_importe}</b>") . ".</h4>";
                     $tx_import++;
                 } elseif ($added == 0) {
                     $subscriber_op_msg .= "<h4 class='alert_error'>" . translate("ERROR_SQL", DbError()) . "</h4>";
                 }
             } else {
                 $subscriber_op_msg .= "<h4 class='alert_error'>Adresse mail invalide : " . $mail_importe . "</h4>";
             }
         }
     }
     $subscriber_op_msg .= "<h4 class='alert_success'><b>{$tx_import} mails importés</b></h4>";
function modifyForward($aliasId, $destination, $active)
{
    if ($active) {
        $active = 't';
    } else {
        $active = 'f';
    }
    if (!$aliasId || !$destination || !$active) {
        return FALSE;
    }
    $email = getAliasEmail($aliasId);
    if (!$email) {
        return FALSE;
    }
    if ($email != $_SESSION['user']['email']) {
        $adminDomains = getAdminDomains();
        $emailParts = split('@', $email);
        $domain = $emailParts[1];
        if (!in_array($domain, $adminDomains)) {
            return FALSE;
        }
    }
    if (!userExists($email)) {
        return FALSE;
    } else {
        if (!validEmailAddress($destination)) {
            return FALSE;
        }
    }
    $destinationParts = split('@', $destination);
    $allDomainsHash = getAllDomains();
    $allDomains = array();
    foreach ($allDomainsHash as $domain) {
        $allDomains[] = $domain['domain'];
    }
    if (in_array($destinationParts[1], $allDomains)) {
        if (!userExists($destination)) {
            return FALSE;
        }
    }
    $updates = array('destination' => $destination, 'active' => $active);
    $conditions = array('alias_id' => $aliasId);
    beginTransaction();
    $ret = db_update('virtual_aliases', $updates, $conditions);
    if ($active == 'f') {
        setUserLocalIfNecessary($email);
    }
    endTransaction();
}
function validParams($arResult, $arParams) {
    if (empty($arParams['IBLOCK_TYPE']) || $arParams['IBLOCK_TYPE'] == '-')
        return 'VLDERR_IBLOCK_TYPE_EMPTY';

    if (empty($arParams['IBLOCK_CODE']) || $arParams['IBLOCK_CODE'] == '-')
        return 'VLDERR_IBLOCK_CODE_EMPTY';

    // form iblock must have even only one field for form
    $res = formHasFields($arResult, $arParams);
    if ($res !== true) {
        if ($res == 'IBLOCK_TYPE_NOT_FOUND') {
            return 'VLDERR_IBLOCK_TYPE_NOT_FOUND';
        } elseif ($res == 'IBLOCK_CODE_NOT_FOUND') {
            return 'VLDERR_IBLOCK_CODE_NOT_FOUND';
        } elseif ($res == 'HAS_NO_FIELDS') {
            return 'VLDERR_IBLOCK_HAS_NO_FIELDS';
        }

        return 'UNKNOWN_ERROR';
    }

    /* checking for email templates iblock has required fields (if need to send email)
       see: $arParams['EMAIL_TEMPLATES_REQUIRED_FIELDS'] */
    $res = emailTemplatesHasRequiredFields($arResult, $arParams);
    if ($res !== true) {
        if (is_array($res) && $res[0] == 'IBLOCK_HAS_NO_RQ_FIELD') {
            return array('VLDERR_IBLOCK_HAS_NO_RQ_FIELD', $res[1]);
        } elseif ($res == 'IBLOCK_TYPE_NOT_FOUND') {
            return 'VLDERR_EMAIL_TEMPLATES_IBLOCK_TYPE_NOT_FOUND';
        } elseif ($res == 'IBLOCK_CODE_NOT_FOUND') {
            return 'VLDERR_EMAIL_TEMPLATES_IBLOCK_CODE_NOT_FOUND';
        } elseif ($res == 'ADMIN_TEMPLATE_NOT_FOUND') {
            return 'VLDERR_ADMIN_TEMPLATE_NOT_FOUND';
        } elseif ($res == 'USER_TEMPLATE_NOT_FOUND') {
            return 'VLDERR_USER_TEMPLATE_NOT_FOUND';
        }

        return 'UNKNOWN_ERROR';
    }

    // email addresses validation and filtering by format
    if (needToSendEmail($arResult, $arParams, 'ANY')) {
        if (empty($arParams['~EMAIL_FROM']))
            return 'VLDERR_EMAIL_FROM_EMPTY';
        $res = validEmailAddress($arParams['~EMAIL_FROM'], false);
        if ($res === false)
            return 'VLDERR_EMAIL_FROM_INCORRECT';
        else
            $arParams['~EMAIL_FROM'] = $res;
    }
    if (needToSendEmail($arResult, $arParams, 'ADMIN')) {
        if (empty($arParams['~ADMIN_EMAIL']))
            return 'VLDERR_ADMIN_EMAIL_EMPTY';
        $res = validEmailAddress($arParams['~ADMIN_EMAIL'], true);
        if ($res === false)
            return 'VLDERR_ADMIN_EMAIL_INCORRECT';
        else
            $arParams['~ADMIN_EMAIL'] = $res;

        if (!empty($arParams['~HIDDEN_COPY_ADMIN'])) {
            $res = validEmailAddress($arParams['~HIDDEN_COPY_ADMIN'], true);
            if ($res === false)
                return 'VLDERR_HIDDEN_COPY_ADMIN_INCORRECT';
            else
                $arParams['~HIDDEN_COPY_ADMIN'] = $res;
        }
    }
    if (needToSendEmail($arResult, $arParams, 'USER')) {
        if (!empty($arParams['~HIDDEN_COPY_USER'])) {
            $res = validEmailAddress($arParams['~HIDDEN_COPY_USER'], true);
            if ($res === false)
                return 'VLDERR_HIDDEN_COPY_USER_INCORRECT';
            else
                $arParams['~HIDDEN_COPY_USER'] = $res;
        }
    }

    return true;
}
        // remove start line spaces
        } elseif ( $arField['FIELD_TYPE'] == 'TEXTAREA' ) {
            $arResult['POST_DATA'][$arField['CODE']] = preg_replace(
                '/^[\t ]+/m', '', $arResult['POST_DATA'][$arField['CODE']]
            );
            $arResult['POST_DATA']['~'.$arField['CODE']] = preg_replace(
                '/^[\t ]+/m', '', $arResult['POST_DATA']['~'.$arField['CODE']]
            );
        }

        // set filtered email to post data
        if ( $arField['CODE'] == 'email'
        && !empty($arResult['POST_DATA']['~'.$arField['CODE']])
        && $validEmail = validEmailAddress(
                $arResult['POST_DATA']['~'.$arField['CODE']],
                $userManyEmails )
        ) {
            $arResult['POST_DATA']['~'.$arField['CODE']] = $validEmail;
            $arResult['POST_DATA'][$arField['CODE']] = htmlspecialcharsEx($validEmail);
        }

    }

    if ($arResult['POST_ERROR'] === null) {
        if ($arParams['HIDE_SUCCESS_FORM'] && $arParams['HIDE_SUCCESS_FORM'] == 'Y') {
            $arResult['FORM_HIDE'] = true;
        }

        $arResult['POST_SUCCESS'] = array();
function addCatchAll($domainId, $destination, $active)
{
    if ($active) {
        $active = 't';
    } else {
        $active = 'f';
    }
    $foundError = FALSE;
    $errors = array();
    if (!$domainId) {
        $errors['domain'] = 'This field is required';
        $foundError = TRUE;
    }
    if (!$destination) {
        $errors['destination'] = 'This field is required';
        $foundError = TRUE;
    }
    if (!$active) {
        $errors['active'] = 'This field is required';
        $foundError = TRUE;
    }
    if ($foundError) {
        print json_encode(array('success' => false, 'errors' => $errors));
        return FALSE;
    }
    $domain = getDomain($domainId);
    if (!$domain) {
        $errors['domain'] = 'Invalid domain';
        $foundError = TRUE;
    }
    if (!validEmailAddress($destination)) {
        $errors['destination'] = 'Invalid destination';
        $foundError = TRUE;
    }
    if ($foundError) {
        print json_encode(array('success' => false, 'errors' => $errors));
        return FALSE;
    }
    $destinationParts = split('@', $destination);
    $allDomainsHash = getAllDomains();
    $allDomains = array();
    foreach ($allDomainsHash as $tmpDomain) {
        $allDomains[] = $tmpDomain['domain'];
    }
    if (in_array($destinationParts[1], $allDomains)) {
        if (!userExists($destination)) {
            print json_encode(array('success' => false, 'errors' => array('destination' => 'User does not exist in local domain: ' . $destinationParts[1])));
            return FALSE;
        }
    }
    $adminDomains = getAdminDomains();
    if (!in_array($domain, $adminDomains)) {
        $errors['domain'] = 'Permission denied on domain: ' . $domain;
        $foundError = TRUE;
    }
    $email = '@' . $domain;
    if (aliasExists($email, $destination)) {
        $errors['destination'] = 'Catch all already exists';
        $foundError = TRUE;
    }
    if ($foundError) {
        print json_encode(array('success' => false, 'errors' => $errors));
        return FALSE;
    }
    $params = array('username' => '', 'domain_id' => $domainId, 'destination' => $destination, 'active' => $active);
    $ret = db_insert('virtual_aliases', $params, 'alias_id');
    if ($ret) {
        print json_encode(array('success' => TRUE));
        return;
    }
    print json_encode(array('success' => FALSE, 'msg' => 'Unknown error'));
}