$ADDRESS->markRecheck($adr_id, 0); $_MAIN_MESSAGE .= "<br><pre><em>" . display($check_mail[1]) . "</em></pre>"; } //check single if ($user_is_manager && $set == "delete_history" && $doit == 1) { if (!DEMO) { $QUEUE->clearH(array("adr_id" => $adr_id)); } $_MAIN_MESSAGE .= "<br>" . ___("Historie wurde gelöscht."); } //del history single if ($user_is_manager && $set == "blacklist") { $ADR_BL = $ADDRESS->getAdr($adr_id); //dublettencheck // 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 $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'])); } } //blacklist single if ($user_is_manager && $set == "blacklist_domain") { $ADR_BL = $ADDRESS->getAdr($adr_id); $bl_domainname = getDomainFromEMail($ADR_BL[0]['email']); //dublettencheck // function isBlacklisted($str,$type="all") if (!$BLACKLIST->isBlacklisted($ADR_BL[0]['email'], "domain", 0)) { //only_active=0, also alle, nicht nur aktive, was default waere
$memo = "unsubscribed"; $NEWSLETTER = new tm_NL(); $NL = $NEWSLETTER->getNL($nl_id); if (count($NL) > 0) { $memo .= " (" . $NL[0]['subject'] . ")"; } //set status adresse, set editor... $author = "unsubscribe"; //always unsubscribe ... if ($ADDRESS->unsubscribe($ADR[0]['id'], $author)) { $ADDRESS->setAktiv($ADR[0]['id'], 0); $ADDRESS->addMemo($ADR[0]['id'], $memo); //unsubscribed if ($C[0]['unsubscribe_action'] == "blacklist" || $C[0]['unsubscribe_action'] == "blacklist_delete") { //add adr to blacklist if (!$BLACKLIST->isBlacklisted($ADR[0]['email'], "email", 0)) { //only_active=0, also alle, nicht nur aktive, was default waere $BLACKLIST->addBL(array("siteid" => TM_SITEID, "expr" => $ADR[0]['email'], "aktiv" => 1, "type" => "email")); } } if ($C[0]['unsubscribe_action'] == "delete" || $C[0]['unsubscribe_action'] == "blacklist_delete") { $ADDRESS->delAdr($ADR[0]['id']); } if ($C[0]['notify_unsubscribe'] == 1) { //email bei subscrption an admin.... $SubscriptionMail_Subject = "Tellmatic: Abmeldung / Unsubscribe"; $SubscriptionMail_HTML = ""; $SubscriptionMail_HTML .= "<br><b>" . $created . "</b>\n" . "<br>'<b>" . $memo . "</b>'\n" . "<br>AID: <b>" . $ADR[0]['id'] . "</b>\n" . "<br>\n" . "<br>Folgender Benutzer hat sich aus der Verteilerliste ausgetragen und moechte kein Newsletter mehr erhalten:\n" . "<br>The following user has unsubscribed:\n" . "<ul>Daten:\n" . "<li>e-Mail: <b>" . $ADR[0]['email'] . "</b></li>\n" . "<li>F0: <b>" . $ADR[0]['f0'] . "</b></li>\n" . "<li>F1: <b>" . $ADR[0]['f1'] . "</b></li>\n" . "<li>F2: <b>" . $ADR[0]['f2'] . "</b></li>\n" . "<li>F3: <b>" . $ADR[0]['f3'] . "</b></li>\n" . "<li>F4: <b>" . $ADR[0]['f4'] . "</b></li>\n" . "<li>F5: <b>" . $ADR[0]['f5'] . "</b></li>\n" . "<li>F6: <b>" . $ADR[0]['f6'] . "</b></li>\n" . "<li>F7: <b>" . $ADR[0]['f7'] . "</b></li>\n" . "<li>F8: <b>" . $ADR[0]['f8'] . "</b></li>\n" . "<li>F9: <b>" . $ADR[0]['f9'] . "</b></li>\n" . "</ul>\n" . "<br>\n" . "Code: <b>" . $code . "</b>\n" . "<br>\n" . "<br>\n" . "Der Datensatz wurde de-aktiviert und markiert (Unsubscribed) und wurde ab sofort aus der Empfaengerliste ausgeschlossen.\n" . "<br>The Address has been deactivated and marked as unsubscribed and will be excluded from recipients list.\n"; @SendMail_smtp($HOST[0]['sender_email'], $HOST[0]['sender_name'], $C[0]['notify_mail'], $HOST[0]['sender_name'], $SubscriptionMail_Subject, clear_text($SubscriptionMail_HTML), $SubscriptionMail_HTML, array(), $HOST); //fixed, now uses defaulthost //now use smtp directly
// ok: merge $idouble++; } // delete != 1 //importierte Adressen loeschen? if ($delete == 1) { if (!DEMO) { $ADDRESS->delAdr($ADR[0]['id']); } $IMPORT_LOG .= "<br>" . sprintf(___("Zeile %s: E-Mail %s wurde gelöscht."), $i + 1, "<em>" . $addr[$i]['email'] . "</em>"); $idelete++; } } //adr_exists true if ($blacklist == 1) { if (!$BLACKLIST->isBlacklisted($addr[$i]['email'], "email", 0)) { //only_active=0, also alle, nicht nur aktive, was default waere $BLACKLIST->addBL(array("siteid" => TM_SITEID, "expr" => $addr[$i]['email'], "aktiv" => 1, "type" => "email")); $IMPORT_LOG .= "<br>" . sprintf(___("Zeile %s: E-Mail %s wurde zur Blacklist hinzugefügt."), $i + 1, "<em>" . $addr[$i]['email'] . "</em>"); $iblacklist++; } else { $IMPORT_LOG .= "<br>" . sprintf(___("Zeile %s: E-Mail %s ist bereits in der Blacklist vorhanden."), $i + 1, "<em>" . $addr[$i]['email'] . "</em>"); } } if ($delete == 1 && !$adr_exists) { // not exists $IMPORT_LOG .= "<br>" . sprintf(___("Zeile %s: E-Mail %s existiert nicht."), $i + 1, "<em>" . $addr[$i]['email'] . "</em>"); } if (!$adr_exists) { // not exists //nur importieren und neu eintragen wenn auch ene gruppe gewaehlt wurde, sonst enstehen datenleichen ohne gruppe! das waere sinnlos!
$QUEUE->setHStatus($H[$bcc]['id'], 5); send_log("adr_id: " . $H[$bcc]['adr_id']); //adresse holen send_log("getAdr()"); $ADR = $ADDRESS->getAdr($H[$bcc]['adr_id']); //nur senden wenn korrekte emailadr! und fehlerrate < max errors //erstmal ok, kein fehler //fehler beim senden? adresse ok? $a_error = false; $h_error = false; $a_status = $ADR[0]['status']; ////todo optimierung: check errors vor blacklist und vor mx, spart ggf zeit und abfragen von adressen die eh zu viele fehler haben oder geblacklisted wurden! //BLACKLIST prüfen if ($Q[$qcc]['check_blacklist']) { send_log("checking blacklist"); if ($BLACKLIST->isBlacklisted($ADR[0]['email'])) { //wenn adr auf blacklist steht, fehler setzen und abbrechen send_log("email " . $ADR[0]['email'] . " matches the active blacklist"); //statt a_error setzen wir h_error! #$a_error=true; //aber skipped nutzen $skipped = true; send_log("set h_status to 6 (canceled)"); send_log("set skipped=true"); $h_error = true; $h_status = 6; //cancel, abbruch (status 6), oder 4 fehler? //lieber 6, abbruch, da fehlerhafte q's ggf nochmal bearbeitet werden! } else { send_log("OK, does not match the active blacklist"); }
$_MAIN_MESSAGE .= "<br>" . ___("Ausgewählte Adressen werden zur automatischen Prüfung vorgemerkt."); } //adressids holen ud in adr_id_arr speichern //function getAdrID($group_id=0,$search=Array()) $adr_id_arr = $ADDRESS->getAdrID(0, $search); //adrarray durchwandern for ($acc_m = 0; $acc_m < $ac; $acc_m++) { //blacklist? MUSS vor anderen aktionen stehen wegen getAdr!! if ($blacklist == 1) { //hier wird naemlich auch nich $set abgefragt! sondern eben $blacklist als eigenes flag! (checkbox), soll aber auch verfuegbar sein wenn set==delete //ist.... sonst muesste man zum blacklisten alle anderen aktionen kombinieren :O //andere loesung waere checkboxen, die aber per js auf gueltigkeit geprueft werden muessen da verschieben und loeschen nix bringt! //get adr $ADR_BL = $ADDRESS->getAdr($adr_id_arr[$acc_m]); //checkblacklist if (!$BLACKLIST->isBlacklisted($ADR_BL[0]['email'], "email")) { //blacklist adr $BLACKLIST->addBL(array("siteid" => TM_SITEID, "expr" => $ADR_BL[0]['email'], "aktiv" => 1, "type" => "email")); } } //activate adr if ($set == "aktiv_1") { $ADDRESS->setAktiv($adr_id_arr[$acc_m], 1); } //deactivate adr if ($set == "aktiv_0") { $ADDRESS->setAktiv($adr_id_arr[$acc_m], 0); } //set status if ($set == "set_status") { $ADDRESS->setStatus($adr_id_arr[$acc_m], $status_multi);
} $ADR = $ADDRESS->getAdr(0, $export_offset, $export_limit_run, $adr_grp_id, $search); //id,offset,limit,group $ac = count($ADR); //aktuelle anzahl ermittelte adressen if ($ac > 0) { if (DEBUG) { $_MAIN_MESSAGE .= "<br>export_run {$export_run} von {$export_run_max} , Found: {$ac} Adr: {$export_offset} - " . ($export_offset + $ac) . " , Total: {$adc} Adr, Limit: {$export_limit_run}, Offset: {$export_offset}<br>"; } //loop 2 for ($acc = 0; $acc < $ac; $acc++) { //blacklist einstellungen pruefen //wenn "alle" exportieren, oder "blacklisted" und isblacklisted=true oder nur not_blacklisted und isblacklisted=false $blacklisted = false; if ($check_blacklist == "blacklisted" || $check_blacklist == "not_blacklisted") { $blacklisted = $BLACKLIST->isBlacklisted($ADR[$acc]['email'], "email"); } if ($check_blacklist == "all" || $check_blacklist == "blacklisted" && $blacklisted || $check_blacklist == "not_blacklisted" && !$blacklisted) { //CSV Zeile erstellen: $CSV = $ADDRESS->genCSVline($ADR[$acc], $delimiter); //free some memory ;-) unset($ADR[$acc]); //und in file schreiben: if (!DEMO) { fputs($fp, $CSV, strlen($CSV)); } $exported++; } } //for $acc //datei schreiben: war: append_file($tm_datapath,$CSV_Filename,$CSV);, verbraucht aber da die werte in CSV gesammelt werde zu viel RAM, wir schreiben innerhalb der schleife einfach direkt ins file