Guten Abend,
ich habe folgende Klasse:
Wie zu sehen ist, habe ich die Klasse so erstellt, das ein Versand per Cron von 3 Mails machbar wäre...
Ich habe mir nun aber gedacht, dass ich evtl. noch ne weitere Mailvorlage zum Versand bereitstellen mag und nicht unbedingt wieder an die Datei möchte. Habt ihr vllt. nen Lösungsansatz um das ganze zu automatisieren?
Meine Idee wäre halt zu zählen, wie viele Vorlagen sind vorhanden in der DB - aber wie passe ich meine Klasse dementsprechend an? Ich muss ja meine Variablen vorbereiten sowie deklarieren, da stehe ich grad vor einem großen ?
Ich hoffe, ihr könnt mir hier weiterhelfen!
P.S. Ja ich weiß, dass ich statt nen Versand hier nen echo Befehl drin habe, das ist zu Testzwecken so gemacht
ich habe folgende Klasse:
PHP:
<?php
require_once '../class/sub_classes/class_DB.php';
require_once '../class/phpmailer/class.phpmailer.php';
class cronMail{
/**
* Die Betreffe
*
* @var string
*/
public $betreff1;
public $betreff2;
public $betreff3;
/**
* Die Texte
*
* @var string
*/
public $text1;
public $text2;
public $text3;
/**
* Die Userids für das Updaten nach erhalt der Cronmail
*
* @var array
*/
public $update_1=array();
public $update2=array();
public $update3=array();
/**
* Construct
*/
public function __construct(){
$this->dbh=new DB();
$this->mail=new PHPMailer();
}
/**
* Hole die Mailinfos anhand der ID
*
* @param integer $id
*/
public function getMail($id){
/**
* Konnekt zur Datenbank
*
*/
$a=$this->dbh->conn();
$erg=$a->query("SELECT * FROM c_mails WHERE id='$id'");
/**
* Cronmail mit ID 1
*/
if($id=="1"){
while($mail1=$erg->fetch_array()){
//setze Betreff und Text
$this->betreff1=$mail1['betreff'];
$this->text1=$mail1['text'];
}
}
/**
* Cronmail mit ID 2
*/
elseif($id=="2"){
while($mail2=$erg->fetch_array()){
//setze Betreff und Text
$this->betreff2=$mail2['betreff'];
$this->text2=$mail2['text'];
}
}
/**
* Cronmail mit ID 3
*/
elseif($id=="3"){
while($mail3=$erg->fetch_array()){
//setze Betreff und Text
$this->betreff3=$mail3['betreff'];
$this->text3=$mail3['text'];
}
}
}
/**
* Sende die Mail mit ID
*
* @param integer $id
*/
public function sendMail($id){
/**
* Hole die Daten der Mail anhand der ID
*
* @var integer
*/
$this->getMail($id);
//PHPMailer Infos für den Versand
$this->mail->SetFrom("kontakt@xxx.de", "xxx.de");
/**
* Mail mit der ID 1 vorbereiten
*/
if($id=="1"){
//Query für die Userabfrage
$query="";
//PHPMailer Betreff und body definieren
$this->mail->Subject=$this->betreff1;
$this->mail->body=$this->text1;
}
/**
* Mail mit der ID 2 vorbereiten
*/
elseif($id=="2"){
//Query für die Userabfrage
$query="c_mail_1='1' AND";
//PHPMailer Betreff und body definieren
$this->mail->Subject=$this->betreff2;
$this->mail->body=$this->text2;
}
/**
* Mail mit der ID 3 vorbereiten
*/
elseif($id=="3"){
//Query für die Userabfrage
$query="c_mail_2='1! AND";
//PHPMailer Betreff und body definieren
$this->mail->Subject=$this->betreff3;
$this->mail->body=$this->text3;
}
//Konnekt zur DB um die Userdaten zu holen
$a=$this->dbh->conn();
//Abfrage mit vorbereitetem Query
$erg=$a->query("SELECT * FROM b_receiver WHERE $query c_mail_$id='0'");
/**
* Sende Mail 1
*/
if($id=="1"){
while($empf1=$erg->fetch_array()){
echo $empf1['u_email']."<br>";
$this->update_1[]=$empf1['u_id'];
}
}
/**
* Sende Mail 2
*/
elseif($id=="2"){
while($empf2=$erg->fetch_array()){
echo $empf2['u_email']."<br>";
$this->update_2[]=$empf2['u_id'];
}
}
/**
* Sende Mail 3
*/
elseif($id=="3"){
while($empf3=$erg->fetch_array()){
echo $empf3['u_email']."<br>";
$this->update_3[]=$empf3['u_id'];
}
}
}
/**
* Update User nach Erhalt der Mail
*
* @param integer $id (Mail ID)
* @param integer $user (UserID)
*/
public function update($id, $user){
//Konnect zur Datenbank
$a=$this->dbh->conn();
/**
* User hat Mail 1 erhalten
*/
if($id=="1"){
$a->query("UPDATE b_receiver SET c_mail_1='1' WHERE u_id={$user}");
}
/**
* User hat Mail 2 erhalten
*/
elseif($id=="2"){
$a->query("UPDATE b_receiver SET c_mail_2='1' WHERE u_id={$user}");
}
/**
* User hat Mail 3 erhalten
*/
elseif($id=="3"){
$a->query("UPDATE b_receiver SET c_mail_3='1' WHERE u_id={$user}");
}
}
}
?>
Wie zu sehen ist, habe ich die Klasse so erstellt, das ein Versand per Cron von 3 Mails machbar wäre...
Ich habe mir nun aber gedacht, dass ich evtl. noch ne weitere Mailvorlage zum Versand bereitstellen mag und nicht unbedingt wieder an die Datei möchte. Habt ihr vllt. nen Lösungsansatz um das ganze zu automatisieren?
Meine Idee wäre halt zu zählen, wie viele Vorlagen sind vorhanden in der DB - aber wie passe ich meine Klasse dementsprechend an? Ich muss ja meine Variablen vorbereiten sowie deklarieren, da stehe ich grad vor einem großen ?
Ich hoffe, ihr könnt mir hier weiterhelfen!
P.S. Ja ich weiß, dass ich statt nen Versand hier nen echo Befehl drin habe, das ist zu Testzwecken so gemacht