E-Mail-Versand: cmail

Erstellt am 07.03.2022 Lesedauer 2 - 3 Min.

Es gibt zwei Module für den Aufruf der Datei mail.php im Wurzelverzeichnis:

cmail

Erzeugt einen formularbasierten Aufruf, der via $<em>POST-Variablen übertragen wird.

mail

Erzeugt einen Link-basierten Aufruf mit einer BASE64-codierten $<em>GET-Variable, die als Parameter an der URL hängt.

Aufruf

[cmail subject linktext linktitel lng]
[mail subject linktext linktitel lng]

Parameter

subject

Der Betreff der E-Mail

linktext

Der (optional) angezeigte Text

linktitel

Die (optionale) Link-Information

lng

Eine (optionale) Sprachwahl für die Antwortseite

Modul cmail

Der Aufruf erfolgt über ein (verstecktes) Formular als „post“.

cmail subject "linktext=Anfrage per E-Mail" "linktitel=Per E-Mail Programm" lng
<?php
$btext = (strlen ('§§§linktext§§§') ? '§§§linktext§§§':'E-Mail senden');
$subject  = (strlen('§§§subject§§§') ? '§§§subject§§§' : 'Anfrage von ' . $_SERVER["HTTP_HOST"]);
$help     = (strlen('§§§linktitel§§§') ? '§§§linktitel§§§' : 'E-Mail per E-Mail Programm');
$lng    = (strlen('§§§lng§§§') ? '-§§§lng§§§' : '');
$cmail  = '<form class="cmail" action="/mail'.$lng.'" method="post">';
$cmail .= '<button type="submit" title="'.$help.'" name="q" value="' . $subject . '">'.$btext.'</button>';
$cmail .= '<input type="hidden" name="r" value="'. $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] .'" /></form>';
echo $cmail;
?>

Modul mail

Der Aufruf erfolgt über einen Link als „get“.

mail betreff "linktext=Anfrage per E-Mail" "linktitel=Per E-Mail Programm" lng
<?php
	$greeting = (strlen ('§§§linktext§§§') ? '§§§linktext§§§':'E-Mail senden');
	$subject  = (strlen('§§§betreff§§§') ? '§§§betreff§§§' : 'Anfrage von ' . $_SERVER["HTTP_HOST"]);
	$linktitel     = (strlen('§§§linktitel§§§') ? '§§§linktitel§§§' : 'E-Mail per E-Mail Programm');
	$lng    = (strlen('§§§lng§§§') ? '-§§§lng§§§' : '');
	$subject = base64_encode($subject . '%%' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$cmail = '<a class="mail" href="/mail'.$lng.'?q='.$subject.'" title="'.$linktitel.'">'.$greeting.'</a>';
echo $cmail;
?>

Verarbeitung

cmail

generiert einen „Formular-Button“ und verschickt die Anfrage per „POST“

  • Für das Formular cmail sollten geeignete Klassen (Form, button) definiert sein.
  • Ein Formular schließt grundsätzlich niederrangigere Tags (h…,p,…), was den Einsatz dieser Variante im Fließtext einschränkt.
  • Fließend lässt sich mit einer „Simulationsklasse“ für Absätze
<div class=\´´p\´´>[cmail…]</div>

erzeugen, womit — abhängig davon, wie detailliert es beschrieben ist – dennoch die Standardformatierung für Absätze verloren gehen kann.

mail

generiert einen „einfachen“ Link der die Anfrage per „GET“ verschickt

  • „GET“ ist angreifbarer, da der erzeugte Link manipulierbar ist.
  • Als „normaler Link“ ist diese Einfügung im Fließtext formatierbar.
  • Der Link von mail wird ebenfalls mit einer Klasse versehen
  • Wird dem subject ein „!“ vorangestellt, kann damit eine alternative E-Mail-Adresse gewählt werden.
  • Es sind Yaml-Variablen definiert, die im PHP-Code ersetzt werden:
    • adr1 ist die „Standardadresse“
    • adr2 die des Webmasters (wird typischerweise nur im Impressum benötigt), das „!“ wird aus dem Aufruf entfernt
  • voran ist ein (optionaler) Text, der mit einem Leerzeichen getrennt dem subject voran gestellt wird.
  • Wird mail verwendet, sind die vollständigen Link-Daten „sichtbar“. Zwar BASE64-codiert, doch stellt das keine Verschlüsselung dar. Der damit anrichtbare Schaden ist wahrscheinlich „akademisch“, die übergebenen Parameter werden in „Reintext“ übersetzt, was die potenzielle Angriffsfläche sehr klein hält.

    Beispiel

    [" "Weit hinten, [cmail \´´Ein wilder Mustertext\´´ \´´hinter den Wortbergen\´´ \´´Das ist natürlich sinnfrei…\´´] …Mustertext…\nWeit hinten, [mail \´´Ein wilder Mustertext\´´ \´´hinter den Wortbergen\´´ \´´Ebenfalls sinnfrei…\´´] …Mustertext……" "false" "true"]

    Ausgabe

    cmail

    Weit hinten,

    , fern der Länder Vokal und Konsonant, leben die Blindtexte. Abgeschieden wohnen Sie in Buchstabhausen an der Küste der Semantik, einem Ausläufer des Phonetik-Ozeans.

    mail

    Weit hinten, hinter den Wortbergen, fern der Länder Vokal und Konsonant, leben die Blindtexte. Abgeschieden wohnen Sie in Buchstabhausen an der Küste der Semantik, einem Ausläufer des Phonetik-Ozeans.

    Die Darstellung lässt sich mit Formatvorlagen beeinflussen. In Dokumentation fehlt das Format mail, mit dem der „einfache Link“ des get-Aufrufs genauso wie der post-Aufruf (mit der Klasse cmail) formatiert werden könnte.