Von allen guten und bösen Geistern verlassen

Die Frage aus der Headline lässt sich wohl mit „Sicherlich nicht” beantworten. Dennoch verwend eich Stück für Stück beim PHP-programmieren immer mehr Klassen – gerade dann, wenn sich bestimmte Aufgaben wiederholen.

Bei manchen Projekten kommt es vor, dass eine eMail durch PHP versendet werden soll. Das geht dank mail recht einfach, nur besteht dabei die Gefahr, auf Grund dessen Fehler zu machen. Zwar kein Fehler, aber fast schon hässlich ist es, den Text der eMail mit in das PHP-Skript zu schreiben. Da mir das mittlerweile ziemlich gegen den Strich geht, habe ich mir kurzerhand eine kleine Klasse geschrieben, die den Versand von eMails etwas eleganter löst:

class mailsender{
var $mailformat;// 'txt' for text or 'html' for html mails
var $subject;
var $charencoding;//  'UTF-8' for example
var $placeholder_array =array(); // array of placeholders for the template file
var $msg;
var $from;
var $template_url;
function mailsender($mytemplate_url,$mysubject,$myplaceholder_array,$myfrom) {
foreach ($myplaceholder_array as $key=>$value) {
$this->placeholder_array[$key]='/{'.$value.'}/';
}
$this->from = $myfrom;
$this->subject = $mysubject;
$this->template_url = $mytemplate_url;
}
function set_mailformat($mymailformat,$mycharencoding) {
$this->mailformat = $mymailformat;
$this->charencoding = $mycharencoding;
}
function send_mail($myrecipient,$myvariables) {
$msg_string=implode("",file($this->template_url));
$msg_string= preg_replace ($this->placeholder_array, $myvariables, $msg_string);
$header = "From: ".$this->from."\nReply-To: ".$this->from;
if ($this->mailformat) {
$header = $header."\r\n".'Content-Type: text/'.$this->mailformat.'; charset='.$this->charencoding.'"'."\r\n"; }
mail($myrecipient, $this->subject, $msg_string, $header);
echo $msg_string;
}
}

Verwendet wird sie wie folgt:

$userMAIL= new  mailsender('beispiel.txt','
Anfrage',array('vorname','name'),'tboley@wildbits.de');
$userMAIL->send_mail('tboley@web.de',array('Thomas','Boley'));

Sicher lässt sich daran noch eine Menge verbessern, aber immerhin erleichtert sie bereits jetzt die Arbeit erheblich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

DSGVO Cookie Consent mit Real Cookie Banner