Signatur
Beschreibung
ezmlm_hash() berechnet einen numerischen Hash-Wert für eine gegebene E-Mail-Adresse nach dem Algorithmus, den das EZMLM-Mailinglistensystem (Easy Mailing List Manager) intern zur Verwaltung von Abonnenten verwendet. EZMLM speichert Abonnenten in Unterverzeichnissen, die nach einem Hash-Wert benannt sind, um die Dateisystemlast bei großen Listen zu verteilen.
Das Ergebnis ist eine ganze Zahl im Bereich von 0 bis 52, die als Verzeichnisname im EZMLM-Datenverzeichnis dient. PHP-Anwendungen, die direkt mit EZMLM-Verzeichnisstrukturen arbeiten (z. B. um Abonnenten zu lesen oder zu schreiben), benötigen diese Funktion, um den richtigen Speicherort einer E-Mail-Adresse zu ermitteln.
Die Funktion ist ausschließlich dann sinnvoll, wenn eine Anwendung direkt mit den Dateidaten eines EZMLM-Systems interagiert. Für allgemeine Hashing-Aufgaben sind PHP-Funktionen wie md5(), sha1() oder hash() deutlich besser geeignet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $addr Pflicht | string | Die E-Mail-Adresse, für die der EZMLM-Hash berechnet werden soll. Es wird empfohlen, die Adresse in Kleinbuchstaben zu übergeben, da EZMLM zwischen Groß- und Kleinschreibung unterscheidet. |
Rückgabewert
0 bis 52 zurück, die dem Hash-Wert der übergebenen E-Mail-Adresse entspricht und als Verzeichnisindex im EZMLM-System verwendet wird.Beispiele
Hash einer E-Mail-Adresse berechnen
<?php
$email = 'benutzer@example.com';
$hash = ezmlm_hash($email);
echo "Der EZMLM-Hash für '{$email}' ist: " . $hash . PHP_EOL;
?>
EZMLM-Verzeichnispfad für eine Adresse ermitteln
<?php
$ezmlmListDir = '/var/lib/ezmlm/meineliste';
$email = strtolower('Mitglied@Example.org');
$hash = ezmlm_hash($email);
// EZMLM speichert Abonnenten in: <liste>/subscribers/<hash>/<lokaler-Teil>
$subscriberDir = $ezmlmListDir . '/subscribers/' . $hash;
$localPart = substr($email, 0, strpos($email, '@'));
$subscriberFile = $subscriberDir . '/' . $localPart;
echo "Verzeichnis: " . $subscriberDir . PHP_EOL;
echo "Datei: " . $subscriberFile . PHP_EOL;
?>
// Wichtig · Fallstricke
Deprecation: ezmlm_hash() ist eine sehr spezielle Funktion ohne breite Anwendung außerhalb von EZMLM-Integrationen. Die EZMLM-Erweiterung gilt als veraltet und ist in modernen PHP-Versionen (ab PHP 8.0) nicht mehr im Core enthalten bzw. kaum noch aktiv gepflegt.
Sicherheitshinweis: Da der Hash-Wert nur 53 mögliche Werte (0–52) annehmen kann, ist er nicht für kryptografische Zwecke oder zur eindeutigen Identifikation von E-Mail-Adressen geeignet. Für sicherheitsrelevante Operationen sollte stets hash() mit einem starken Algorithmus verwendet werden.
Die Funktion steht nur zur Verfügung, wenn PHP mit IMAP-Unterstützung kompiliert wurde (--with-imap).