<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkf</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kkf"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Kkf"/>
	<updated>2026-04-28T16:26:47Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=7346</id>
		<title>Mlmmj</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mlmmj&amp;diff=7346"/>
		<updated>2025-04-29T15:00:41Z</updated>

		<summary type="html">&lt;p&gt;Kkf: neuer Ort der Sourcen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.mlmmj.org/ mlmmj], angeblich eine Abkürzung für &amp;quot;Mailing List Management Made Joyful&amp;quot;, ist ein Programm, mit dem in einem Hostsharing Paket E-Mail-Verteiler realisiert werden kann.&lt;br /&gt;
&lt;br /&gt;
Wer noch nicht weiß, was ein E-Mail-Verteiler machen soll oder wie, lese vielleicht auch den Wikipedia-Artikel:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Mailingliste Mailingliste]&lt;br /&gt;
&lt;br /&gt;
Eine leistungsfähigere Alternative zu mlmmj könnte [[Mailman_3_installieren|Mailman 3]] sein.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung einer Mailingliste für eine Domain in einem Hostsharing-Webspace.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen  ==&lt;br /&gt;
&lt;br /&gt;
Das Debian Paket [http://packages.debian.org/search?keywords=mlmmj mlmmj] ist auf den Shared-Hosting-Servern bereits installiert. (Wer die Software selbst kompilieren möchte kann aktuellen Source-Code bei [https://codeberg.org/mlmmj/mlmmj codeberg.org] finden.)&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb der Mailingliste empfiehlt sich das Anlegen eines eigenen Users für diesen Zweck mit hsadmin.&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung heißt das Paket &#039;&#039;xyz00&#039;&#039; und der für Mailinglisten eingesetzte User &#039;&#039;xyz00-list&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die E-Mail-Adresse der einzurichtende Mailing-Liste soll &#039;&#039;discuss@example.org&#039;&#039; sein. Den lokalen Teil dieser Adresse, &#039;&#039;discuss&#039;&#039;, ist der Listenname. Der Listenname darf auf keinen Fall das Plus-Zeichen (+) enthalten, weil dies ein Sonderbedeutung für die Listensteuerung hat: &#039;&#039;mlmmj&#039;&#039; wird nämlich Befehle der Abonnenten über erweiterte Adressen annehmen, wie z.B. &#039;&#039;discuss+help@example.org&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Domain &#039;&#039;example.org&#039;&#039; muss dazu bei einem beliebigen User im Paket &#039;&#039;xyz00&#039;&#039; [[aufgeschaltet]] sein. (&amp;quot;Aufgeschaltet&amp;quot; bedeutet, daß diese Domain bei Hostsharing gehostet wird und der Domainname als Verzeichnis /home/pacs/xyz00/*User*/doms/example.org/ erscheint.)&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
Ich melde mich über SSH auf der Hostsharing-Console als der Paketuser &#039;&#039;xyz00&#039;&#039; an.&lt;br /&gt;
&lt;br /&gt;
Im Shell kann ich dann durch den Befehl &#039;&#039;hsscript -i&#039;&#039; das Verwaltungswerkzeug [[hsadmin]] interaktiv ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@h03:~$ hsscript -i&lt;br /&gt;
Password: *************&lt;br /&gt;
xyz00@hsadmin&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039; werden User und E-Mail-Adresse angelegt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-list&#039;,comment:&#039;Mailingliste Discuss&#039;,shell:&#039;/bin/bash&#039;,password:&#039;geheimnis&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; emailaddress.add({set:{target:&#039;xyz00-list&#039;,localpart:&#039;discuss&#039;,domain:&#039;example.org&#039;}})&lt;br /&gt;
xyz00@hsadmin&amp;gt; bye&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Parameter &amp;quot;target&amp;quot; wird die für diese Adresse eingehende Post zunächst in das Postfach des Users xyz00-list abgelegt.&lt;br /&gt;
&lt;br /&gt;
Für den User xyz00-list lege ich in seinem Heimat-Verzeichnis das Unterverzeichnis &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt; an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann lege ich die Mailingliste mit folgendem Kommando an:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mlmmj-make-ml -L discuss -s /home/pacs/xyz00/users/list/mlmmj&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Skript &#039;&#039;mlmmj-make-ml&#039;&#039; fragt weitere Parameter der Mailingliste ab:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=output line&amp;gt;&lt;br /&gt;
The Domain for the List? [] : example.org&lt;br /&gt;
The emailaddress of the list owner? [postmaster] : webmaster@example.org&lt;br /&gt;
For the list texts you can choose between the following languages or&lt;br /&gt;
give an absolute path to a directory containing the texts.&lt;br /&gt;
Available languages:&lt;br /&gt;
cz  da	de  en	es  fr	it  nl	ru&lt;br /&gt;
The path to texts for the list? [en] : de&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das skript &#039;&#039;mlmmj-make-ml&#039;&#039; legt daraufhin unter &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; ein Verzeichnis &amp;quot;discuss&amp;quot; an, das die Datenstruktur zur Verwaltung der Mailingliste enthält.&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationen der Liste erfolgen durch das Anlegen von Dateien im&lt;br /&gt;
Verzeichnis &amp;quot;/home/pacs/xyz00/users/list/mlmmj/discuss/control&amp;quot;.&lt;br /&gt;
Die Konfigurationsmöglichkeiten finden Sie auf der [http://mlmmj.org/TUNABLES.html Internetseite von mlmmj].&lt;br /&gt;
&lt;br /&gt;
Damit mlmmj die Verteilung der Post übernimmt, muß ich im Heimat-Verzeichnis des users xyz00-list die Datei &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt; mit folgenden Inhalt (INKLUSIVE der Anführungszeichen!) erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/mlmmj-receive -L /home/pacs/xyz00/users/list/mlmmj/discuss/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Ja, &#039;&#039;receive&#039;&#039; schreibt sich mit &#039;&#039;-ei-&#039;&#039;, aber mlmmj hält einen symbolischen Link bereit für diejenigen, die in englischer Rechtschreibung unsicher sind:)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00-list@h03:~$ ls -la /usr/bin/mlmmj-rec*&lt;br /&gt;
-rwxr-xr-x 1 root root 27104 Sep 25  2018 /usr/bin/mlmmj-receive&lt;br /&gt;
lrwxrwxrwx 1 root root    13 Sep 25  2018 /usr/bin/mlmmj-recieve -&amp;gt; mlmmj-receive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt;-Datei sorgt dafür, dass eingehende E-Mails an das User-Postfach an das Programm &#039;&#039;mlmmj-recieve&#039;&#039; übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Für regelmäßige Aufgaben der Listen-Managers definiere ich den systemd timer wie folgt (immer noch als &#039;&#039;xyz00-list&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
~/.config/systemd/user/mlmmj.service&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=mlmmj maintenance&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/bin/mlmmj-maintd -d /home/pacs/xyz00/users/list/mlmmj -F&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~/.config/systemd/user/mlmmj.timer&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=mlmmj maintenance&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=*:28/4&lt;br /&gt;
Persistent=True&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timer aktivieren und starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
$ systemctl --user enable mlmmj.timer&lt;br /&gt;
$ systemctl --user start mlmmj.timer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Schluss rufe ich das Skript mlmmj-sub auf, um die E-Mail-Adressen der gewünschten Abonnenten des Verteilers einzutragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
/usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a klaus.muster@gmx.de -c &lt;br /&gt;
/usr/bin/mlmmj-sub -L /home/pacs/xyz00/users/list/mlmmj/discuss -a sabine.beispiel@arcor.de -c &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dabei bewirkt &amp;quot;-c&amp;quot;, dass der Abonnent eine Begrüßungs-Nachricht erhält. Alternativ kann man &amp;quot;-C&amp;quot; (großes C) angeben: dann muss der Abonnent das Abo durch Antworten auf die Nachricht bestätigen.&lt;br /&gt;
&lt;br /&gt;
== weitere Optionen  ==&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Dinge, die Sie möglicherweise einstellen wollen:&lt;br /&gt;
&lt;br /&gt;
Ein Prefix in der Betreffzeile setzen, z.B.: &amp;quot;[discuss]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;[discuss]&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/prefix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn die Liste nur E-Mails von eingetragenen Abonnenten weiterleiten soll:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/subonlypost&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit der Listen-Owner weitere Abonnements bestätigen muss:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch /home/pacs/xyz00/users/list/mlmmj/discuss/control/submod&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einen &amp;quot;Reply-To:&amp;quot;-Header setzen, damit Antwort-Mails standardmäßig an die Mailing-Liste gehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;Reply-To:&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/delheaders&lt;br /&gt;
echo &amp;quot;Reply-To: discuss@example.org&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/customheaders&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Massenversand, z.B. bei Newslettern, nutzen Sie bitte möglichst den dedizierten Postausgangsserver für den Massenversand. Dadurch tragen Sie dazu bei, die Reputation unserer regulären Ausgangsserver aufrechtzuerhalten.&lt;br /&gt;
&lt;br /&gt;
Um dies zu tun, setzen Sie den SMTP-Port entsprechend:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
echo &amp;quot;4025&amp;quot; &amp;gt; /home/pacs/xyz00/users/list/mlmmj/discuss/control/smtpport&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Konfigurationsvariante des Ausgangsserver sind unter https://www.hostsharing.net/doc/managed-operations-platform/email/ zu finden.&lt;br /&gt;
&lt;br /&gt;
Weitere Möglichkeiten finden Sie (wie oben bereits angegeben) &lt;br /&gt;
auf der [http://mlmmj.org/TUNABLES.html Internetseite von mlmmj].&lt;br /&gt;
&lt;br /&gt;
=== Achtung: DKIM ===&lt;br /&gt;
&lt;br /&gt;
Mlmmj gibt die Möglichkeit, mit &#039;&#039;&#039;delheaders&#039;&#039;&#039; und &#039;&#039;&#039;customheaders&#039;&#039;&#039; die Header der durchgeleiteten Mail umfangreich zu ändern. Allerdings tragen Mails heute häufig kryptografische Signaturen der sendenden Mailserver. Eine DKIM-Signatur sichert damit in der Regel die Integrität des Body der Mail sowie der Header &#039;&#039;Subject:&#039;&#039;, &#039;&#039;From:&#039;&#039;, &#039;&#039;To:&#039;&#039;, &#039;&#039;Date:&#039;&#039;, &#039;&#039;From&#039;&#039;, und oft auch &#039;&#039;Reply-To:&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Wird zum Beispiel mit einem Prefix das Subject geändert oder ein Footer angehängt, macht dies die DKIM-Signatur ungültig. Das ist für viele Mailprovider ein Grund die Nachricht abzuweisen. (siehe auch Diskussions-Seite zum Artikel)&lt;br /&gt;
&lt;br /&gt;
== Zur Konfiguration im Browser ==&lt;br /&gt;
&lt;br /&gt;
Die Original-Distribution von &#039;&#039;mlmmj&#039;&#039; enthält ein paar einfache PHP- und Perl-Skripte.  Das sind Beispiele für Subscribe-/Unsubscribe-Formulare, ein Admin-Formular zum Eintragen und Löschen von Abonnements und eine Seite mit der gesamten Listen-Konfiguration.&lt;br /&gt;
&lt;br /&gt;
Wer es sich ansehen möchte:&lt;br /&gt;
&lt;br /&gt;
Als Paket-Admin eine Domain aufschalten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
hsscript -u xyz00 -e &amp;quot;domain.add({set:{name:&#039;lists.example.org&#039;,user:&#039;xyz00-list&#039;}})&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Und weiter als &amp;quot;xyz00-list&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Download der neuesten Version der Sourcen von mlmmj von https://codeberg.org/mlmmj/mlmmj (noch besser: Download des aktuellen Debian-Pakets von [https://packages.debian.org/bookworm/all/mlmmj-php-web-admin/download debian.org]: da sind einige veraltete PHP-Ausdrücke schon herausgepatcht) und diese in einem temporären Verzeichnis entpacken (mit tar oder dpkg-deb).&lt;br /&gt;
&lt;br /&gt;
Unter &amp;quot;/mlmmj-$versionsnummer/contrib/web/php-admin/&amp;quot;, oder beim .deb-Paket unter &amp;quot;usr/share/mlmmj-...&amp;quot;, findet sich die PHP-Admin-Anwendung. Also ...&lt;br /&gt;
&lt;br /&gt;
* den Inhalt diese Verzeichnisses nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/&amp;quot; packen;&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/conf/config.php&amp;quot; die Variable &amp;quot;$topdir&amp;quot; anpassen;&lt;br /&gt;
* die Dateien aus &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs/&amp;quot; nach &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; verschieben;&lt;br /&gt;
* Beim .deb-Paket die config.php, die templates/ und die tunables.pl aus etc/ nach example.org/conf/ verschieben;&lt;br /&gt;
* in &amp;quot;/home/pacs/xyz00/users/list/mlmmj&amp;quot; und in &amp;quot;/home/pacs/xyz00/users/list/doms/lists.example.org/htdocs-ssl/&amp;quot; eine &amp;quot;.htaccess&amp;quot; mit folgendem Inhalt ablegen: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=apache line&amp;gt;&lt;br /&gt;
Require valid-user&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;mlmmj web-interface&amp;quot;&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/list/doms/lists.example.org/etc/htpasswd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Und schließlich die &amp;quot;htpasswd&amp;quot;-Datei anlegen.&lt;br /&gt;
&lt;br /&gt;
 cd /home/pacs/xyz00/users/list/doms/lists.example.org/etc/&lt;br /&gt;
 htpasswd -c htpasswd listadmin&lt;br /&gt;
&lt;br /&gt;
* Ein Passwort angeben.&lt;br /&gt;
&lt;br /&gt;
Nun enthält diese PHP-Anwendung, wenn man sie nicht dem Debian-Paket entnommen hat, leider noch eine Zeile, die schon seit PHP 7 nicht mehr lauffähig ist. Also muß man noch&lt;br /&gt;
&lt;br /&gt;
* in &amp;lt;tt&amp;gt;.../htdocs-ssl/index.php&amp;lt;/tt&amp;gt; folgende Änderung vornehmen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=diff line&amp;gt;&lt;br /&gt;
@@ -38,4 +38,5 @@&lt;br /&gt;
 # use scandir to have alphabetical order &lt;br /&gt;
 foreach (scandir($topdir) as $file) {&lt;br /&gt;
-    if (!ereg(&amp;quot;^\.&amp;quot;,$file))&lt;br /&gt;
+# ereg obsolete!! Vormals:    if (!ereg(&amp;quot;^\.&amp;quot;,$file))&lt;br /&gt;
+    if (!preg_match(&#039;/^\./&#039;,$file))&lt;br /&gt;
     {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
und das Ergebnis auf https://lists.example.org anschauen.&lt;br /&gt;
&lt;br /&gt;
== Mehrere Mailinglisten betreiben ==&lt;br /&gt;
&lt;br /&gt;
Wenn mehrere Mailinglisten in einem Account und mit einer Admin-Oberfläche betrieben werden soll, empfiehlt sich die Nutzung von Procmail für den Aufruf von &#039;&#039;mlmmj&#039;&#039; für die jeweiligen Liste mit ihrem Daten-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
Dazu trägt man in der Datei &amp;lt;tt&amp;gt;.forward&amp;lt;/tt&amp;gt; statt des Aufrufs von &#039;&#039;mlmmj-recieve&#039;&#039; einen Aufruf von &#039;&#039;procmail&#039;&#039; ein:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
|/usr/bin/procmail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration von Procmail kann generisch erfolgen. Dazu legt man eine Datei &amp;lt;tt&amp;gt;.procmailrc&amp;lt;/tt&amp;gt; mit folgendem Inhalt ins $HOME des Users:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
SHELL=/bin/sh&lt;br /&gt;
HOMEDIR=/home/pacs/xyz00/users/list&lt;br /&gt;
MAILDIR=/home/pacs/xyz00/users/list/Maildir&lt;br /&gt;
PMDIR=/home/pacs/xyz00/users/list&lt;br /&gt;
VERBOSE=yes&lt;br /&gt;
LOGFILE=/home/pacs/xyz00/users/list/var/procmail.log&lt;br /&gt;
DEFAULT&lt;br /&gt;
 &lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/${MATCH}/&lt;br /&gt;
 &lt;br /&gt;
:0&lt;br /&gt;
{ EXITCODE 67 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bitte dafür sorgen, dass das Verzeichnis &#039;&#039;/home/pacs/xyz00/users/list/var&#039;&#039; existiert.&lt;br /&gt;
&lt;br /&gt;
Der kryptische reguläre Ausdruck hinter dem Header &#039;&#039;X-Original-To:&#039;&#039; passt auf den Beginn der E-Mail-Adresse bis zum ersten &#039;&#039;@&#039;&#039;- oder &#039;&#039;+&#039;&#039;-Zeichen. In der Variable &#039;&#039;MATCH&#039;&#039; steht also der Name der Mailingliste, d.h. der Name der Verzeichnisses, in dem die Liste verwaltet wird.&lt;br /&gt;
&lt;br /&gt;
Sehr wichtig ist die Zeile &#039;&#039;DEFAULT&#039;&#039; zu Beginn der &#039;&#039;.procmailrc&#039;&#039;. Die Variable &#039;&#039;DEFAULT&#039;&#039; wird von &#039;&#039;procmail&#039;&#039; gesetzt. Wir sorgen mit dieser Zeile dafür, dass sie wieder undefiniert ist. Diese Variable wird intern von &#039;&#039;mlmmj&#039;&#039; benutzt, wenn sie gesetzt ist. Das führt in Kombination mit &#039;&#039;procmail&#039;&#039; zu Fehlfunktionen (vgl. Links).&lt;br /&gt;
&lt;br /&gt;
===Groß- und Kleinschreibung===&lt;br /&gt;
&lt;br /&gt;
Achtung, mit der Groß- und Kleinschreibung von Listennamen gibt es bei dieser Procmail-Lösung eine kleine Tücke. Procmail übernimmt in die Variable $MATCH genau die in der X-Original-To-Headerzeile vorgefundene Schreibweise, und diese kann denkbarerweise &amp;quot;Listen-Name&amp;quot; oder &amp;quot;listen-name&amp;quot; oder &amp;quot;Listen-name&amp;quot; sein. &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt; hingegen wird diesen Wert in Unix-Manier mit dem genauen Verzeichnisnamen &amp;lt;tt&amp;gt;${HOME}/mlmmj/listen-name&amp;lt;/tt&amp;gt; vergleichen, und bei unterschiedlicher Schreibweise die Mail nicht verteilen.&lt;br /&gt;
&lt;br /&gt;
====Lösung 1====&lt;br /&gt;
&lt;br /&gt;
Eine teilweise Lösung besteht darin, den Listennamen in dem &amp;lt;tt&amp;gt;mlmmj&amp;lt;/tt&amp;gt;-Aufruf in der &amp;lt;tt&amp;gt;.procmailrc&amp;lt;/tt&amp;gt; in Kleinbuchstaben umzuschreiben. Dann lautet das Rezept so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/$(echo ${MATCH} | tr [:upper:] [:lower:])/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Rest der Datei muß gleich bleiben, wie weiter oben angezeigt.&lt;br /&gt;
&lt;br /&gt;
In diesem Fall müssen aber alle Mailing-Listen ohne Großbuchstaben im Namen angelegt werden!&lt;br /&gt;
&lt;br /&gt;
(Man kann auch in &amp;lt;tt&amp;gt;${HOME}/mlmmj/&amp;lt;/tt&amp;gt; durch kleingeschriebene Symlinks großgeschriebene Listennamen ansprechbar machen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=output&amp;gt;&lt;br /&gt;
xyz00-list@h02:~$ ls -lA mlmmj/&lt;br /&gt;
total 8&lt;br /&gt;
-rw-r--r--  1 xyz00-list xyz00  148 Feb  1 16:56 .htaccess&lt;br /&gt;
lrwxrwxrwx  1 xyz00-list xyz00   10 Feb  2 18:01 mitglieder -&amp;gt; Mitglieder&lt;br /&gt;
drwxr-xr-x 15 xyz00-list xyz00 4096 Feb  2 16:53 Mitglieder&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Lösung 2====&lt;br /&gt;
&lt;br /&gt;
Bash kann bei der Auflösung von Variablen die Groß- und Kleinschreibung manipulieren. (Siehe dazu bei der Zeichenfolge &amp;lt;tt&amp;gt;,,&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;man bash&amp;lt;/tt&amp;gt;.) Dann ist &amp;lt;tt&amp;gt;$(echo ${MATCH} | tr [:upper:] [:lower:])&amp;lt;/tt&amp;gt; gleichbedeutend mit &amp;lt;tt&amp;gt;${MATCH,,}&amp;lt;/tt&amp;gt;. Allerdings braucht procmail einige Überredung, um Bash zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
SHELLMETAS=&amp;amp;|&amp;lt;&amp;gt;~;?*[{&lt;br /&gt;
HOMEDIR= ...&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
:0:&lt;br /&gt;
* ^X-Original-To: ()\/[^@+]+&lt;br /&gt;
|/usr/bin/mlmmj-receive -F -L /home/pacs/xyz00/users/list/mlmmj/${MATCH,,}/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Tücke ist, daß procmail den in SHELL angegebenen Shell nur dann verwendet, wenn die Befehlszeile eines der in SHELLMETAS angegebenen Zeichen enthält. Und das &#039;|&#039; am Anfang der Zeile zählt dabei nicht! In diesem Beispiel ist es das Zeichen &amp;lt;tt&amp;gt;{&amp;lt;/tt&amp;gt;, das den Einsatz von Bash auslöst.&lt;br /&gt;
&lt;br /&gt;
Beide Lösungen scheinen zu funktionieren; Angabe ohne Gewähr.&lt;br /&gt;
&lt;br /&gt;
== Hilfreiche Befehle ==&lt;br /&gt;
&lt;br /&gt;
Suche, wo eine E-Mail Adresse abonniert ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@h03:~$ grep -r beispiel.adresse@example.org mlmmj/*/subscribers.d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Entferne eine E-Mail Adresse von einer Liste, still und ohne Rückfrage (siehe auch https://mlmmj.org/mlmmj-unsub.html):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
xyz00@h03:~$ /usr/bin/mlmmj-unsub -L $HOME/mlmmj/public-discussion/ -a beispiel.adresse@example.org -q&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* http://mlmmj.org/ Projektseite&lt;br /&gt;
* https://codeberg.org/mlmmj mlmmj auf Codeberg&lt;br /&gt;
* https://github.com/tchapi/mlmmj-simple-web-interface ein Admin-Interface in NodeJS&lt;br /&gt;
* [https://web.archive.org/web/20221228110514/https://www.tablix.org/~avian/blog/archives/2010/04/the_faulty_default/ https://www.tablix.org/~avian/blog/archives/2010/04/the_faulty_default/ (via web.archive.org)] Nutzung von mlmmj in Verbindung mit Procmail&lt;br /&gt;
* [https://gist.github.com/kboss/7c9593f0fd9219406226c4f11256b98a Einfaches Python-Script zum Massenimport aus einem Texfile.] Geht bestimmt auch eleganter mit purem Bash&lt;br /&gt;
* Ein Self-Service zum Subscriben/Unsubscriben lässt sich in Form von Mail-to-Links in Webseiten einbinden. Beispiele gibt es bei Hostsharing für die öffentlichen &amp;quot;public&amp;quot;-Mailinglisten: https://www.hostsharing.net/lists/public-discussion/ . Alternativ auf https://github.com/hblasum/mlmmj-php-web-simplified ein Webfrontend mit dem sich Benutzerinnen und Benutzer selbst ein-/austragen können (Vereinfachung von mlmmj-php-web von Christoph Thiel).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Mailinglisten]]&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Kkf</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=DKIM&amp;diff=7345</id>
		<title>DKIM</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=DKIM&amp;diff=7345"/>
		<updated>2025-04-27T17:01:13Z</updated>

		<summary type="html">&lt;p&gt;Kkf: typo: ddas -&amp;gt; das&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:HSDoku]][[Kategorie:E-Mail]]&lt;br /&gt;
= DomainKeys Identified Mail (DKIM) =&lt;br /&gt;
&lt;br /&gt;
DKIM ist ein Verfahren, dass die Authentizität einer E-Mail sicherstellen kann. Dazu wird die E-Mail auf dem sendenden System mit einer elektronischen Signatur in den unsichtbaren Headerzeilen der E-Mail versehen. Es kommt ein asymmetrisches Schlüsselverfahren zum Einsatz. Der sendende Server verwendet seinen privaten Schlüssel, um die Signatur zu erstellen.&lt;br /&gt;
&lt;br /&gt;
Der öffentliche Schlüssel wird im DNS der E-Mail-Domain veröffentlicht, so dass Empfänger die Authentizität der Signatur prüfen können.&lt;br /&gt;
&lt;br /&gt;
== DKIM bei Hostsharing aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Die Nutzer der Hostsharing-Plattform können E-Mails, die sie über die Hostsharing-Server versenden, mit einer DKIM Signatur versehen lassen. Dazu sind zwei Voraussetzungen notwendig:&lt;br /&gt;
&lt;br /&gt;
# Die Veröffentlichung des öffentlichen Domainkey im DNS der eigenen E-Mail-Domain.&lt;br /&gt;
# Das Setzen der Domain-Option &amp;quot;Domain Key – DKIM&amp;quot; mit Hilfe von HSAdmin.&lt;br /&gt;
&lt;br /&gt;
=== Domainkey im DNS ===&lt;br /&gt;
&lt;br /&gt;
==== Wenn ein individuell angepasstes Zonefile existiert ====&lt;br /&gt;
&lt;br /&gt;
Wenn das Zonefile individuell angepasst wurde, muss es entweder den Platzhalter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{DEFAULT_ZONEFILE}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder den Platzhalter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{DKIM_RR}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
enthalten.&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht der Fall ist, muss eine der beiden Zeilen ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
==== Wenn das Zonefile nicht verändert wurde ====&lt;br /&gt;
&lt;br /&gt;
Wenn kein Zonefile im etc-Verzeichnis der Domain vorhanden ist, bedeutet dies, dass das Default-Zonefile mit der Zeile &amp;quot;&amp;lt;code&amp;gt;{DEFAULT_ZONEFILE}&amp;lt;/code&amp;gt;&amp;quot; genutzt wird.&lt;br /&gt;
&lt;br /&gt;
Die Veröffentlichung des Domainkeys ist dann mit einem einfachen &amp;quot;touch&amp;quot;-Befehl möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
touch doms/hs-example.de/etc/pri.hs-example.de &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daraufhin erstellt das System automatisch einen Domain-Key und veröffentlicht ihn.&lt;br /&gt;
Etwa drei Minuten nach dem &amp;quot;touch&amp;quot; liefert der Befehl&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
dig -t TXT +short hskey1._domainkey.hs-example.de @dns1.hostsharing.net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;quot;hs-example.de&amp;quot; durch die eigene Domain ersetzen) &lt;br /&gt;
&lt;br /&gt;
das folgende Alias:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;&lt;br /&gt;
hskey1._domainkey.hostsharing.net.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Domainoption DKIM ===&lt;br /&gt;
&lt;br /&gt;
Über die Domainoption &amp;quot;Domain Key – DKIM&amp;quot; wird gesteuert, dass der SMTP-Server, auf dem der Webspace mit der Domain liegt, die ausgehenden E-Mail mit einer DKIM-Signatur ausstattet.&lt;br /&gt;
&lt;br /&gt;
Zum Anpassen der Domainoptionen wählt man in HSAdmin links den Punkt &amp;quot;Web-Paket&amp;quot; und im rechten Bereich im Menü die Auswahl &amp;quot;Domain&amp;quot;. Bei Domains, die ab 3. September 2021 eingerichtet wurden, ist die Domainoption per Voreinstellung gesetzt,&lt;br /&gt;
&lt;br /&gt;
[[Datei:dkim-domain.png]]&lt;br /&gt;
&lt;br /&gt;
[[Datei:dkim-option.png]]&lt;br /&gt;
&lt;br /&gt;
== DKIM deaktivieren ==&lt;br /&gt;
&lt;br /&gt;
Das Abstellen der DKIM-Option in folgender Reihenfolge wird funktionieren:&lt;br /&gt;
&lt;br /&gt;
# Die Domainoption deaktivieren&lt;br /&gt;
# Abwarten bis alle mit der Option (und damit mit einer Signatur) versendeten E-Mail zugestellt sind&lt;br /&gt;
# Den Domainkey im DNS entfernen&lt;br /&gt;
&lt;br /&gt;
== DKIM bei Google ==&lt;br /&gt;
&lt;br /&gt;
Die Server von &#039;&#039;gmail&#039;&#039; sind so eingestellt, dass E-Mails von Domains ohne DKIM oder SPF nicht zugestellt werden. Die Empfängerseite wird nicht informiert. An die Absenderseite geht eine Fehlermeldung in der Art:&lt;br /&gt;
&amp;lt;Blockquote&amp;gt;... host gmail-smtp-in.l.google.com[2a00:1450:4010:c0f::1a] said: 550-5.7.26 Your email has been blocked because the sender is unauthenticated. 550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM. 550-5.7.26  550-5.7.26  Authentication results: 550-5.7.26  DKIM = did not pass 550-5.7.26 ...&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Dieser Google-Support-Artikel: [https://support.google.com/a/answer/81126 Richtlinien für E-Mail-Absender] (abgerufen am 26. Mai 2024) soll das erläutern.&lt;br /&gt;
&lt;br /&gt;
Nach erfolgreicher Umstellung findet sich im Header einer E-Mail in Googles Posteingang Text in der Art:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini&amp;gt;Authentication-Results: mx.google.com;&lt;br /&gt;
dkim=pass ...&lt;br /&gt;
spf=pass ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://de.wikipedia.org/wiki/DomainKeys DKIM Artikel der Wikipedia]&lt;br /&gt;
* [https://www.hostsharing.net/doc/managed-operations-platform/zonefile/ Hostsharing-Dokumentation zur Anpassung des Zonefile]&lt;br /&gt;
* [https://www.hostsharing.net/doc/managed-operations-platform/domain/#kap-domain-optionen Hostsharing-Dokumentation Domain-Optionen]&lt;/div&gt;</summary>
		<author><name>Kkf</name></author>
	</entry>
</feed>