PHP Beitrag

E-Mails mit Anhängen versenden

<?php

define('SERVER_NAME', preg_replace('/www./i', '', $_SERVER['SERVER_NAME']));

define('DATATYPE', 1); // 0 = text/plain | 1 = text/html

$type = 'normal';

switch ($type) {

    case 'high':
        $priority = 1;
        $importance = 'High';
        break;

    case 'normal':
        $priority = 3;
        $importance = 'Normal';
        break;

    default:
        $priority = 3;
        $importance = 'Normal';
        break;
}

$attachment = array();

$attachment[] = array(
    'type' => 'text/plain',
    'name' => 'index.htm',
    'data' => file_get_contents(getcwd().'/index.htm')
);

$from = SERVER_NAME.' <demo@'.SERVER_NAME.'>';

$subject = 'Demo - '.SERVER_NAME;

$cc = null;

$bcc = null;

$header = "From: ".$from.PHP_EOL;

if (!is_null($cc)) { $header .= "Cc: ".$cc.PHP_EOL; }

if (!is_null($bcc)) { $header .= "Bcc: ".$bcc.PHP_EOL; }

$header .= "Message-Id: <".sha1(microtime())."@".SERVER_NAME.">".PHP_EOL;
$header .= "X-Mailer: PHP ".phpversion().PHP_EOL;
$header .= "MIME-Version: 1.0".PHP_EOL;
$header .= "X-Priority: ".$priority.PHP_EOL;
$header .= "Importance: ".$importance.PHP_EOL;

$boundary = '-----='.hash('md5', uniqid(mt_rand(), 1));

$content = (string) '';

$header .= 'Content-Type: multipart/mixed;'.PHP_EOL;
$header .= ' boundary="'.$boundary.'"'.PHP_EOL;

$content .= 'This is a multi-part message in MIME format'.PHP_EOL.PHP_EOL;
$content .= '--'.$boundary.PHP_EOL;

$type = (DATATYPE === 0) ? 'text/html' : 'text/plain';

if (count($attachment) > 0) {

    $content .= 'Content-Type: '.$type.'; charset=utf-8'.PHP_EOL;
    $content .= 'Content-Transfer-Encoding: 8bit'.PHP_EOL.PHP_EOL;
}
else {

    $header .= 'Content-Type: '.$type.'; charset=utf-8'.PHP_EOL;
    $header .= 'Content-Transfer-Encoding: 8bit';
}

$content .= 'Inhalt der E-Mail'.PHP_EOL;

if (count($attachment) > 0) {

    foreach ($attachment as $data) {

        $content .= PHP_EOL.'--'.$boundary.PHP_EOL;
        $content .= 'Content-Type: '.$data['type'].'; name='.$data['name'].PHP_EOL;
        $content .= 'Content-Transfer-Encoding: base64'.PHP_EOL;
        $content .= 'Content-Disposition: attachment; filename='.$data['name'].PHP_EOL.PHP_EOL;
        $content .= chunk_split(base64_encode($data['data']));
    }

    $content .= "\n".'--'.$boundary.'--';
}

var_dump(mail('empfaenger@domain.de', $subject, $content, $header)); // liefert TRUE oder FALSE
PHP Beitrag

Fehlerbehandlung richtig einsetzen

error_reporting(E_ALL); Wer kennt es nicht? Aber ist das wirklich die optimale Einstellung in der Entwicklungsumgebung? Der nachfolgende Codeauszug zeigt dir wie du zumindest während der Entwicklung optimal die Fehlerbehandlung nutzen kannst, denn mit den Einstellungen wird dir jeder noch so kleine Fehler direkt angezeigt. Und im Live-Betrieb? Im Live-Betrieb sollte die Fehlerbehandlung zwar nicht deaktiviert werden, aber so ablaufen, das der Anwender im besten Fall eine Fehlerseite weiterlesen
PHP Beitrag

Vererbung von Klassen

Können mehrere Klassen vererbt werden? NEIN - jede Klasse kann nur von EINER weiteren Klasse erben. Das Final-Schlüsselwort Sowohl Klassen als auch Methoden einer Klasse können "final" sein. Das bedeutet, dass diese nicht überschrieben werden können, sie sind final also endgültig. Wird zum Beispiel eine finale Methode vererbt, kann diese nicht überschireben werden da sonst ein Fatal Error geworfen wird. Können Interfaces untereinander erben? JA - Interfaces können untereinander vererbt weiterlesen
PHP Beitrag

IBAN mit PHP validieren

Die Validierung von Daten ist für Programmierer ein tägliches Thema. Natürlich bleibt da die Validierung der recht "neuen" internationalen Kontonummer (IBAN) nicht aus. Für die in Deutschland gültige IBAN gilt: die IBAN darf nicht länger als 22 Zeichen sein die ersten beiden Zeichen stehen für das Land (in diesem Fall also DE) generell gilt, die ersten beiden Ziffern nach dem Land, bilden die Prüfsumme Mehr unter Wikipedia IBAN Dieses Skript funktioniert nur mit deutschen weiterlesen