$group) { if (isset($_POST["group_{$id}"]) && $_POST["group_{$id}"]=="ok") { $groups[$id]['ok']=true; } else { $groups[$id]['ok']=false; } } $players=$_POST['players']; $players_sql=stripslashes($_POST['players_sql']); $subject=$_POST['subject']; $text=$_POST['text']; $send_multiple = $_POST['send_multiple']; $send_yom = $_POST['send_yom']; $send_html = $_POST['send_html']; } else { $players=""; $subject=""; $text=""; } output("`c`bMassenemail versenden`b`c`n`n"); $out='
'; if ($op=="viewall") { if (isset($_GET['op2'])) { $op2=$_GET['op2']; } else { $op2=false; } if ($op2=="drop") { $id=$_GET['id']; $sql="DELETE FROM massenmail WHERE id='$id' LIMIT 1"; db_query($sql); $out.="Nachricht aus dem Archiv gelöscht...
"; } elseif ($op2=="view") { $id=$_GET['id']; $sql="SELECT * FROM massenmail WHERE id='$id' LIMIT 1"; $res=db_query($sql); $mail=db_fetch_assoc($res); $mailgroups=explode(",",$mail['groups']); $out.="Nachricht anzeigen({$mail['date']})

Gruppen:"; foreach ($mailgroups as $group) { $out.=$groups[$group][1]; } $out.="
Betreff: {$mail['subject']}
Nachricht: {$mail['body']}"; } else { $sql="SELECT * FROM massenmail"; $res=db_query($sql); $i=0; $out.=""; while ($mail=db_fetch_assoc($res)) { $i++; addnav("",$str_file."?op=viewall&op2=view&id={$mail['id']}"); addnav("",$str_file."?op=viewall&op2=drop&id={$mail['id']}"); $out.=""; } $out.="
BetreffNachrichtDatumAktionen
{$mail['subject']} ".substr($mail['body'],0,50)." {$mail['date']} [Anzeigen] [Entfernen]
"; } } elseif (!isset($_POST['op'])) { $values=array("players"=>$players,"subject"=>$subject,"text"=>$text,"players_sql"=>$players_sql,"send_html"=>$send_html,"send_multiple"=>$send_multiple,"send_yom"=>$send_yom); $form=array("Empfängergruppen,title"); $i=0; foreach ($groups as $id=>$group) { if (isset($group['ok']) && $group['ok']==true) { $values["group_{$id}"]="ok"; } $i++; $form["group_{$id}"]="{$group[1]},checkbox,ok".($i==1?"|?Welche Gruppe soll den Newsletter erhalten?":""); } $form['players']="Spieler(login oder id),textarea,60,3|?Welche Spieler sollen den Newsletter zusätzlich erhalten(Eingabe durch Komma trennen)"; $form['players_sql']="Spieler(SQL Abfrage auf ID),textarea,60,3|?Eine SQL Anfrage, die eine bestimmte Anzahl an UserIDs zurückliefert!"; $form['send_multiple']="Sollen mehrere Mails versendet werden?,checkbox,true|?Wenn ausgewählt, werden alle Mails einzeln versendet, sonst wird BCC genutzt."; $form['send_html']="Soll HTML versendet werden?,checkbox,true"; $form['send_yom']="Sollen Brieftauben anstatt Mails versandt werden?,checkbox,true"; $form[]="Nachricht,title"; $form['subject']="Betreffzeile,text|?Welchen Betreff hat die Nachricht?"; $form['text']="Nachricht,textarea,80,20,0,true|?Was steht in der Nachricht?"; $out.=generateform($form,$values,true); } elseif ($_POST['op']=="Vorschau") { if($send_yom == true) { $text=str_replace('`n',"\n",$text); $text=str_replace("\r\n","\n",$text); $text=str_replace("\r","\n",$text); $text = closetags($text,'`c`i`b'); $out.=appoencode("`bBetreff`b:$subject
$text"); } else { $out.="

Betreff:$subject


$text"; } foreach ($groups as $id=>$group) { $out.=""; } $out.=''; $out.=''; $out.=''; $out.=(!empty($players_sql))?'':''; $out.=(!empty($send_html))?'':''; $out.=(!empty($send_multiple))?'':''; $out.=(!empty($send_yom))?'':''; $out.='
'; } elseif ($_POST['op']=="Testsuche") { //Zwischenspeichern foreach ($groups as $id=>$group) { $out.=""; } $out.=''; $out.=''; $out.=''; $out.=(!empty($players_sql))?'':''; $out.=(!empty($send_html))?'':''; $out.=(!empty($send_multiple))?'':''; $out.=(!empty($send_yom))?'':''; //Testsuche $where="0"; foreach ($groups as $id=>$group) { if ($group['ok']) { $where.=" || superuser='$id'"; } } $arr_players = array(); if(!empty($players)) { $arr_players=explode(",",$players); } if(!empty($players_sql)) { $db_res = db_query($players_sql); $arr_players = adv_array_merge($arr_players,db_create_list($db_res,false,true)); } foreach ($arr_players as $player) { $player=trim($player); if (is_numeric($player)) { $where.=" || acctid='$player'"; } else { $where.=" || login='".mysql_escape_string($player)."'"; } } $sql="SELECT name,acctid FROM accounts WHERE $where ORDER BY acctid ASC"; $res=db_query($sql); $out.=""; if (db_num_rows($res)>100) { $out.="Zu viele Treffer(".db_num_rows($res)." Treffer)..."; } else { while ($player=db_fetch_assoc($res)) { if ($player['name']=="") { continue; } $out.=""; } } $out.="
{$player['acctid']}".appoencode($player['name'])."
"; $out.='
'; } elseif ($_POST['op']=="Abschicken") { //Mailskript Initialisieren $mail = new PHPMailer(); $mail->From = getsetting('gameadminemail','admin@localhost'); $mail->FromName = MAIL_FROM_NAME; $mail->Host = "atrahor.de"; $mail->Mailer = "smtp"; $mail->Subject = $subject; $mail->IsHTML(($_POST['send_html'] == 'true')?true:false); switch(getsetting('mail_define_mta',0)) { case 0: $mail->IsMail(); break; case 1: $mail->IsSMTP(); break; case 2: $mail->IsQmail(); break; case 3: $mail->IsSendmail(); } //Suche nach den Empfängern $where="0"; $sgroups=""; foreach ($groups as $id=>$group) { if ($group['ok']) { $where.=" || superuser='$id'"; if ($sgroups!="") { $sgroups.=","; } $sgroups.=$id; } } $arr_players = array(); if(!empty($players)) { $arr_players=explode(",",$players); } if(!empty($players_sql)) { $db_res = db_query($players_sql); $arr_players = adv_array_merge($arr_players,db_create_list($db_res,false,true)); } foreach ($arr_players as $player) { $player=trim($player); if (is_numeric($player)) { $where.=" || acctid='$player'"; } else { $where.=" || login='".mysql_escape_string($player)."'"; } } $sql="SELECT name,acctid,emailaddress,login FROM accounts WHERE $where ORDER BY acctid ASC"; $res=db_query($sql); $out.=""; $rawtext=strip_tags(str_replace("
","\n",$text)); $ok=0; if($_POST['send_yom'] == 'true') { while ($player=db_fetch_assoc($res)) { if ($player['name']=="") { continue; } $body=str_replace("[NAME]",$player['login'],$text); $body=str_replace('`n',"\n",$body); $body=str_replace("\r\n","\n",$body); $body=str_replace("\r","\n",$body); $body = closetags($body,'`c`i`b'); $body = str_replace("\n",'`n',$body); systemmail($player['acctid'],$subject,$body); $ok++; } } elseif($_POST['send_multiple'] == 'true') { while ($player=db_fetch_assoc($res)) { if ($player['name']=="") { continue; } $body=str_replace("[NAME]",$player['login'],$text); $mail->Body = $body; $mail->AltBody = $rawtext; $mail->AddAddress($player['emailaddress'], $player['login']); if(!$mail->Send()) { $out.="Beim Versuch eine Nachricht an {$player['emailaddress']} ({$player['login']}) zu senden trat ein Fehler auf...
"; } else { $ok++; } //Aufräumen $mail->ClearAddresses(); } } else { while ($player=db_fetch_assoc($res)) { if ($player['name']=="") { continue; } $mail->AddBCC($player['emailaddress'], $player['login']); } $body=str_replace("[NAME]",$player['login'],$text); $mail->Body = $body; $mail->AltBody = $rawtext; if(!$mail->Send()) { $out.="Beim Versuch eine Nachricht zu senden trat ein Fehler auf...
"; } else { $ok++; } //Aufräumen $mail->ClearAddresses(); } if ($ok>0) { $sql="INSERT INTO massenmail (id,subject,body,date,groups) VALUES (NULL,'".mysql_escape_string($subject)."', '".mysql_escape_string($text)."', NOW(), '$sgroups');"; db_query($sql); $sendmail=true; } else { $out.="Es konnte leider keine einzige Nachricht verschickt werden..."; } } if ($sendmail==false && $op!="viewall") { $str_confirm = "Die Nachricht hat folgende Zusatzoptionen:\\n"; $str_confirm .= ($send_yom?"- Wird per Brieftaube versand\\n":"- Wird per Mail versand\\n"); $str_confirm .= ($send_multiple?"- Mehrere Nachrichten werden versandt\\n":"- Eine Nachricht wird versandt\\n"); $out.='

'; } elseif ($op!="viewall") { $out.="Newsletter wurde erfolgreich verschickt"; } $out.=''; rawoutput($out); page_footer(); ?>