$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!
Exemple #4
0
 $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