if ($delete != 1 && !empty($adr_grp)) { //wenn adresse noch nicht existiert , neu anlegen $new_adr_id = $ADDRESS->addAdr(array("email" => $addr[$i]['email'], "aktiv" => $aktiv_new, "created" => $created, "author" => $author, "status" => $status_new, "code" => $code, "memo" => "import", "source" => "import", "source_id" => $LOGIN->USER['id'], "source_extern_id" => 0, "f0" => $addr[$i]['f0'], "f1" => $addr[$i]['f1'], "f2" => $addr[$i]['f2'], "f3" => $addr[$i]['f3'], "f4" => $addr[$i]['f4'], "f5" => $addr[$i]['f5'], "f6" => $addr[$i]['f6'], "f7" => $addr[$i]['f7'], "f8" => $addr[$i]['f8'], "f9" => $addr[$i]['f9']), $new_adr_grp); if ($mark_recheck == 1) { $ADDRESS->markRecheck($new_adr_id, 1); } $IMPORT_LOG .= "<br>" . sprintf(___("Zeile %s: E-Mail %s wurde hinzugefügt und in gewählten Gruppen eingetragen."), $import_offset_user + $i + 1, "<em>" . $addr[$i]['email'] . "</em>"); $iok++; } // ! delete } //adr exists false //importierte Adressen loeschen? //domains der liste hinzufuegen fuer blacklisting der domains if ($blacklist_domains == 1) { $bl_domains[$i] = getDomainFromEMail($addr[$i]['email']); } } //isset email } //for //adressen vergessen unset($addr); if ($blacklist_domains == 1) { $bl_domains = array_unique($bl_domains); //unify! foreach ($bl_domains as $bl_domainname) { //dublettencheck! per getBL if (!empty($bl_domainname)) { $BL = $BLACKLIST->getBL(0, array("type" => "domain", "expr" => $bl_domainname)); //wenn nix gefunden, eintragen:
// function isBlacklisted($str,$type="all") if (!$BLACKLIST->isBlacklisted($ADR_BL[0]['email'], "email", 0)) { //only_active=0, also alle, nicht nur aktive, was default waere //wenn noch nicht vorhanden einfuegen: $BLACKLIST->addBL(array("siteid" => TM_SITEID, "expr" => $ADR_BL[0]['email'], "aktiv" => 1, "type" => "email")); $_MAIN_MESSAGE .= "<br>" . sprintf(___("Die E-Mail-Adresse %s wurde in die Blacklist eingetragen."), display($ADR_BL[0]['email'])); } else { $_MAIN_MESSAGE .= "<br>" . sprintf(___("Die E-Mail-Adresse %s ist bereits in der Blacklist vorhanden."), display($ADR_BL[0]['email'])); } //if blacklisted } //blacklist multi if ($user_is_manager && $set == "blacklist_domain_multi") { //hier wird ein aray erzeugt mit allen domainnamen, auch doppelte! $ADR_BL = $ADDRESS->getAdr($adr_id_arr[$acc_m]); $bl_domains[$acc_m] = getDomainFromEMail($ADR_BL[0]['email']); } //blacklist domain multi } //for acc_m if ($user_is_manager && $set == "blacklist_domain_multi") { //hier nun blacklist domains array unifien und dann erst eintragen! $bl_domains = array_unique($bl_domains); //unify! foreach ($bl_domains as $bl_domainname) { //dublettencheck! per getBL diesmal da wir nur domainnamen haben, is blacklisted sich aber auf email bezieht! $BL = $BLACKLIST->getBL(0, array("type" => "domain", "expr" => $bl_domainname)); //wenn nix gefunden, eintragen: if (count($BL) < 1) { $BLACKLIST->addBL(array("siteid" => TM_SITEID, "expr" => $bl_domainname, "aktiv" => 1, "type" => "domain")); $_MAIN_MESSAGE .= "<br>" . sprintf(___("Die Domain %s wurde in die Blacklist eingetragen."), display($bl_domainname));
function checkBL($str, $type = "all", $only_active = 1) { //erweiterung, neue fkt: check nach typ und gibt alle matches zurueck! in einem array .... //while match, set return[0]=true //add matches and type to array: //$return[1][$match_c]['type']= //$return[1][$match_c]['expr']= //$match_c++; if (!empty($str)) { $match_c = 0; $return[0] = false; //match: true, default/dont match: false $return[1] = array(); //match: true, default/dont match: false $Query = "SELECT \n\t\t\t\t\t\t\t\t\t\t" . TM_TABLE_BLACKLIST . ".id ,\n\t\t\t\t\t\t\t\t\t\t" . TM_TABLE_BLACKLIST . ".aktiv ,\n\t\t\t\t\t\t\t\t\t\t" . TM_TABLE_BLACKLIST . ".expr ,\n\t\t\t\t\t\t\t\t\t\t" . TM_TABLE_BLACKLIST . ".type \n\t\t\t\t\t\t\t\t\t\tFROM " . TM_TABLE_BLACKLIST . "\n\t\t\t\t\t\t\t\t\t\tWHERE " . TM_TABLE_BLACKLIST . ".siteid='" . TM_SITEID . "'"; if (empty($type) || $type == "all") { $Query .= "\n\t\t\t\t\t\t\t\tAND (\n\t\t\t\t\t\t\t\t" . TM_TABLE_BLACKLIST . ".expr='" . dbesc($str) . "'\n\t\t\t\t\t\t\t\tOR " . TM_TABLE_BLACKLIST . ".expr='" . dbesc(getDomainFromEMail($str)) . "'\n\t\t\t\t\t\t\t\tOR '" . dbesc($str) . "' REGEXP " . TM_TABLE_BLACKLIST . ".expr\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t"; } if ($type == "email") { $Query .= "\n\t\t\t\t\t\t\t\tAND " . TM_TABLE_BLACKLIST . ".expr='" . dbesc($str) . "'\n\t\t\t\t\t\t\t"; } //domain //check for domain if ($type == "domain") { $Query .= "\n\t\t\t\t\t\t\t\tAND " . TM_TABLE_BLACKLIST . ".expr='" . dbesc(getDomainFromEMail($str)) . "'\n\t\t\t\t\t\t\t"; } //domain //check for regexpression if ($type == "expr") { //we do not use php ereg/i, too much overhead, we let mysql do the stuff... lets see how it works: //mysql: SELECT * FROM foo WHERE bar REGEXP "baz" $Query .= "\n\t\t\t\t\t\t\t\tAND '" . dbesc($str) . "' REGEXP " . TM_TABLE_BLACKLIST . ".expr\n\t\t\t\t\t\t\t"; } //expr if ($only_active == 1) { $Query .= " AND " . TM_TABLE_BLACKLIST . ".aktiv=1"; } $this->DB->Query($Query); while ($this->DB->next_record()) { $return[0] = true; $return[1][$match_c]['expr'] = $this->DB->Record['expr']; $return[1][$match_c]['aktiv'] = $this->DB->Record['aktiv']; $return[1][$match_c]['type'] = $this->DB->Record['type']; $match_c++; } return $return; } //!empty str }