<?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=Lki01-b1gmail</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=Lki01-b1gmail"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Lki01-b1gmail"/>
	<updated>2026-04-28T16:26:53Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7381</id>
		<title>B1gMail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7381"/>
		<updated>2025-06-06T22:57:51Z</updated>

		<summary type="html">&lt;p&gt;Lki01-b1gmail: Signaturen-Plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==b1gMail==&lt;br /&gt;
b1gMail ist ein E-Mail-System, das in der Programmiersprache PHP und JavaScript entwickelt wird. Im Gegensatz zu den anderen Webmailer ist b1gMail darauf ausgerichtet, Besuchern eine eigene E-Mail-Adresse anbieten zu können. Es kann aber auch intern betrieben werden. Daher liefert b1gMail ein eigenes Speichersystem mit und kann somit auch auf einem Webspace laufen. &lt;br /&gt;
&lt;br /&gt;
b1gMail verfügt über einen großen Funktionsumfang, wie beispielsweise Mehrsprachigkeit, Versand von E-Mail-Anhängen, volle Unterstützung für die Nachrichtenformate MIME und HTML, Kalender, Aufgabenliste, SMS-Unterstützung, umfangreiche Filterregeln sowie eingebauten Spam-Filter. Außerdem kann der Funktionsumfang von b1gMail mit Plug-ins erweitert werden.&lt;br /&gt;
==Einrichtung==&lt;br /&gt;
===Datenbank===&lt;br /&gt;
Zunächst benötigt b1gMail eine eigene MariaDB/MySQL-Datenbank. Auf Hostsharing läuft MariaDB, was die empfohlene Variante ist, da b1gMail MySQL 8 und höher aktuell noch nicht voll unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Catchall-Postfach ===&lt;br /&gt;
In dem Setup wird als Empfangsmethode POP3-Gateway (Catchall) ausgewählt. Dazu muss eine Catchall E-Mail-Adresse eingerichtet werden, die alle E-Mails in einem Postfach ablegt.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
In dieser Anleitung wird b1gMail in dem sub-Ordner www eingerichtet, es kann aber auch jeder andere beliebiger Ort gewählt werden.&lt;br /&gt;
&lt;br /&gt;
Statt &amp;lt;domain.tld&amp;gt; setzt man die eigene Domain ein.&lt;br /&gt;
&lt;br /&gt;
Folgende Kommandos sind auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
rm -R ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
git clone https://codeberg.org/b1gMail/b1gMail.git&lt;br /&gt;
touch ~/b1gMail/src/serverlib/config.inc.php ~/b1gMail/src/serverlib/version.inc.php&lt;br /&gt;
ln -s ~/b1gMail/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird zur webbasierte Installation gewechselt, dazu ruft man &amp;lt;domain.tld&amp;gt;/setup ruft. Sobald man auf dem Schritt E-Mail-Konfiguration landet, wählt als Empfangs-Methode POP3-Gateway (CatchAll) und als POP3-Server &amp;quot;localhost&amp;quot;. Unter POP3-Benutzer und POP3-Passwort den Benutzer eintragen, der die CatchAll-E-Mail-Adresse hat. Als Versandmethode kann SMTP und als SMTP-Server sollte localhost stehen. Im nächsten Schritt die MySQL-Daten eintragen. Abschließend wird im letzten Schritt die E-Mail-Domain eingetragen und es kann ein Administrator-Passwort festgelegt werden. Erledigt!&lt;br /&gt;
&lt;br /&gt;
=== Empfang via Pipe-Gateway ===&lt;br /&gt;
&lt;br /&gt;
Statt POP3-Gateway können E-Mails auch an Pipe übergeben werden. Das hat gegenüber dem POP3-Gateway den Vorteil, dass b1gMail die E-Mails nicht abholen muss, sondern in Echtzeit direkt an b1gMail übergeben wird. Dazu stellt man die Empfangsmethode im Administrationsbereich unter Einstellungen -&amp;gt; E-Mail -&amp;gt; Empfang auf b1gMailServer / Pipe / Transportmap um.&lt;br /&gt;
&lt;br /&gt;
im Benutzerverzeichnis, bei dem die CatchAll-E-Mail-Adresse angelegt wurde, eine .forward mit folgenden Inhalt erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/php /home/pacs/&amp;lt;xyz00&amp;gt;/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/interface/pipe.php&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend prüfen, ob die E-Mails weiterhin zugestellt werden.&lt;br /&gt;
&lt;br /&gt;
== Add-On b1gMailServer ==&lt;br /&gt;
Das optionale Add-On b1gMailServer stellt POP3, IMAP und SMTP bereit. Es kann auch als MTA dienen, was aber hier nicht unterstützt wird. Es ist in C++ programmiert. Die webbasierte Administration selbst erfolgt über b1gMail mit dem Modul b1gMailServerAdmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das fertige binary ist ein Installer. Das kann aber nicht genutzt werden, da es root-Rechte braucht. Daher muss b1gMailServer selbst kompiliert und einige Änderungen im Quelltext vorgenommen werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installation b1gMailServer ===&lt;br /&gt;
&lt;br /&gt;
Zuerst muss in b1gMail-Administrationsbereich unter Plugins das Modul b1gMailServer Administration PlugIn aktiviert, damit die benötigte Datenbanktabellen für b1gMailServer angelegt werden. Anschließend geht es weiter mit SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir ~/b1gmailserver&lt;br /&gt;
mkdir ~/b1gmailserver/bin&lt;br /&gt;
mkdir ~/b1gmailserver/init&lt;br /&gt;
mkdir ~/b1gmailserver/plugins&lt;br /&gt;
mkdir ~/b1gmailserver/queue&lt;br /&gt;
mkdir ~/b1gmailserver/tls&lt;br /&gt;
git clone https://github.com/b1gMail/b1gMailServer.git b1gmailserver_src&lt;br /&gt;
cd ~/b1gmailserver_src&lt;br /&gt;
git checkout ubuntu-22.04-openssl-3.4.1&lt;br /&gt;
cd src&lt;br /&gt;
# Feste Pfade ersetzen, Platzhalter ersetzen und ggf. Pfad anpassen&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; *.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; init/*&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.h&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; msgqueue-supervise/*.h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_subdirectory(linux-setup-v2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In dists/CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_dependencies(${NAME}-copy b1gmailserver bms-queue setup)&lt;br /&gt;
&lt;br /&gt;
add_custom_target(${NAME})&lt;br /&gt;
add_custom_command(&lt;br /&gt;
  TARGET        ${NAME}&lt;br /&gt;
  COMMAND       ${CMAKE_SOURCE_DIR}/makeself-2.1.4/makeself.sh&lt;br /&gt;
    ${CMAKE_CURRENT_BINARY_DIR}/package/&lt;br /&gt;
    b1gmailserver-${BMS_VERSION}.${BMS_BUILD}-${BMS_ARCHNAME}.run&lt;br /&gt;
    &amp;quot;b1gMailServer ${BMS_VERSION}.${BMS_BUILD}&amp;quot;&lt;br /&gt;
    sh run-setup&lt;br /&gt;
)&lt;br /&gt;
add_dependencies(${NAME} ${NAME}-copy)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann b1gMailServer kompiliert werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=Release .&lt;br /&gt;
make -j&lt;br /&gt;
cp b1gmailserver ~/b1gmailserver/bin&lt;br /&gt;
cp sendmail/bms-sendmail ~/b1gmailserver/bin&lt;br /&gt;
cp msgqueue-supervise/bms-queue ~/b1gmailserver/bin&lt;br /&gt;
cp pluginsdk/CLIQueueMgr.so ~/b1gmailserver/plugins&lt;br /&gt;
cp init/bms-queue ~/b1gmailserver/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ~/b1gmailserver die Datei b1gmailserver.cfg mit folgenden Inhalt erstellen und die Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
# b1gMailServer configuration file&lt;br /&gt;
mysql_host  = localhost&lt;br /&gt;
mysql_user  = &amp;lt;dbuser&amp;gt;&lt;br /&gt;
mysql_pass  = &amp;lt;dbpassword&amp;gt;&lt;br /&gt;
mysql_db    = &amp;lt;db&amp;gt;&lt;br /&gt;
user        = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
group       = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere optionale Parameter: https://github.com/b1gMail-OSS/b1gMail/wiki/b1gMailServer:Konfigurationsdatei&lt;br /&gt;
&lt;br /&gt;
Mit ~/b1gmailserver/bin --help anschließend prüfen, ob die Hilfe ausgegeben wird. &lt;br /&gt;
&lt;br /&gt;
=== Dienste erstellen und starten === &lt;br /&gt;
&lt;br /&gt;
Mitglieder, die einen Managed Webspace im Shared Hosting nutzen, müssen für ihre b1gMailServer-Installation einen &amp;quot;eigenen Serverdienst&amp;quot; beim Hostsharing-Service anmelden. Diese Option ist im Shared Hosting kostenpflichtig. Für den Serverdienst wird ein IP-Port mit dem Server vereinbart. Im Beispiel werden die Ports 19110,19143,19993,19995,19465 und 19587 genutzt. Nicht alle Ports müssen auch genutzt werden, wenn man einige der angebotene Dienste nicht genutzt werden soll.&lt;br /&gt;
&lt;br /&gt;
b1gMailServer liefert im Installer standardmäßig die xinetd-Konfiguration aus und setzt dies im eigenen Installer voraus. Es ist aber möglich systemd dafür zu nutzen. Dazu muss folgendermaßen vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
Für IMAP sieht es folgendermaßen aus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir -p ~/.config/systemd/user/&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap@.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Datei soll sein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=b1gMailServer IMAP Service&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/bin/b1gmailserver --imap&lt;br /&gt;
StartLimitInterval=10s&lt;br /&gt;
StartLimitBurst=5&lt;br /&gt;
&lt;br /&gt;
StandardInput=socket&lt;br /&gt;
StandardOutput=interhit&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap.socket&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt dieser Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Socket for b1gMailServer IMAP service&lt;br /&gt;
&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=19143&lt;br /&gt;
Accept=yes&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sockets.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IMAP-Dienst wird aktiviert mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable b1gmailserver-imap.socket&lt;br /&gt;
systemctl --user start b1gmailserver-imap.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Submission, POP3 sowie POP3S und IMAPS einfach nochmal die Vorlage nehmen und entsprechend benennen. Für POP3 wird der Parameter --pop3 genutzt, bei Submission: --smtp --submission. Bei implizierten SSL/TLS-Verbindungen wird der Parameter um --ssl ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== SSL/TLS ===&lt;br /&gt;
&lt;br /&gt;
b1gMailServer unterstützt sowohl impliziert als auch expliziertes SSL/TLS. Um SSL/TLS zu nutzen wird ein Zertifikat benötigt. Hierzu kann man ein [[TLS Zertifikat mit LEGO]]. Das löschen der Weiterleitungen wie in der verlinkten Anleitung muss übrigens nicht sein, es muss einfach nur das weitergeleitete Zielverzeichnis angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~/.lego/certificates&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.key ~/b1gmailserver/tls/server.key&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.crt ~/b1gmailserver/tls/server.cert&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.issuer.crt ~/b1gmailserver/tls/chain.cert&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Leider bietet lego keine einzelne Zertifikate an (bei Zwischenzertifikate jedoch schon) und b1gMailServer erwartet bei server.cert exakt nur ein Zertifikat. Daher muss das letzte Zertifikat in server.cert mit einem Texteditor gelöscht werden. Ist man unsicher welches es ist, einfach chain.cert anschauen, es muss das Zertifikat gelöscht werden, dass bei chain.cert bereits vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
=== Signaturen-Plugin ===&lt;br /&gt;
Um das Signaturen-Plugin auch in b1gMailServer zu nutzen, muss das Plugin kompiliert und altermime installiert werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~/b1gmailserver_src&lt;br /&gt;
wget ftp://ftp.b1g.de/b1gmailserver/altermime/altermime-current-x86_64.tar.gz&lt;br /&gt;
mkdir -p ~/b1gmailserver/3rdparty/altermime&lt;br /&gt;
tar --directory=/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/3rdparty/altermime -xzf ~/b1gmailserver_src/altermime-current-x86_64.tar.gz&lt;br /&gt;
ln -s /home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/3rdparty/altermime/altermime ~/b1gmailserver/bin/altermime&lt;br /&gt;
cd ~/b1gmailserver_src/src/pluginsdk&lt;br /&gt;
vi CMakeLists.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in Datei CMakeLists.txt folgendes ergänzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_library(Signature SHARED signature.cpp)&lt;br /&gt;
set_target_properties(Signature PROPERTIES PREFIX &amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=Release .&lt;br /&gt;
make -j&lt;br /&gt;
cp Signature.so ~/b1gmailserver/plugins&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
SMTP/Submission: SMTP/Submission unter b1gMailServer funktioniert aktuell nicht und schlägt fehl, weil es keine Datei unter dem Ordner queue ablegen kann, evtl. weil der Warteschlangen-Manager noch fehlt.&lt;br /&gt;
&lt;br /&gt;
== Z-Push (experimentell) ==&lt;br /&gt;
&lt;br /&gt;
Mit Z-Push können Clients angebunden werden, die das proprietäre Protokoll ActiveSync nutzen. Aktuell ist die Unterstützung mit b1gMail experimentell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/Z-Hub/Z-Push zpush&lt;br /&gt;
cd zpush&lt;br /&gt;
git checkout develop&lt;br /&gt;
cd src/backend&lt;br /&gt;
git clone https://github.com/b1gMail-OSS/zpush-b1gmail b1gmail&lt;br /&gt;
cd ..&lt;br /&gt;
ln -s ~/zpush/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/z-push&lt;br /&gt;
vi config.inc.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der config.inc.php dann den BACKEND_PROVIDER auf BackendB1GMail setzen. Ebenso muss der Pfad in LOGFILEDIR und STATE_DIR angepasst werden. Zum Schluss noch folgendes einfügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
  define(&#039;B1GMAIL_DB_HOST&#039;,		&#039;localhost&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_USER&#039;,		&#039;db_user&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PASS&#039;,		&#039;db_password&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_DB&#039;,			&#039;db&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PREFIX&#039;,	&#039;bm60_&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der .htaccess unter ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www folgendes einfügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^Microsoft-Server-ActiveSync(/.*)?$ /z-push/index.php [L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Lki01-b1gmail</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7380</id>
		<title>B1gMail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7380"/>
		<updated>2025-06-06T22:01:51Z</updated>

		<summary type="html">&lt;p&gt;Lki01-b1gmail: /* Add-On b1gMailServer */ Ergänzungen zu Queue-Manager&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==b1gMail==&lt;br /&gt;
b1gMail ist ein E-Mail-System, das in der Programmiersprache PHP und JavaScript entwickelt wird. Im Gegensatz zu den anderen Webmailer ist b1gMail darauf ausgerichtet, Besuchern eine eigene E-Mail-Adresse anbieten zu können. Es kann aber auch intern betrieben werden. Daher liefert b1gMail ein eigenes Speichersystem mit und kann somit auch auf einem Webspace laufen. &lt;br /&gt;
&lt;br /&gt;
b1gMail verfügt über einen großen Funktionsumfang, wie beispielsweise Mehrsprachigkeit, Versand von E-Mail-Anhängen, volle Unterstützung für die Nachrichtenformate MIME und HTML, Kalender, Aufgabenliste, SMS-Unterstützung, umfangreiche Filterregeln sowie eingebauten Spam-Filter. Außerdem kann der Funktionsumfang von b1gMail mit Plug-ins erweitert werden.&lt;br /&gt;
==Einrichtung==&lt;br /&gt;
===Datenbank===&lt;br /&gt;
Zunächst benötigt b1gMail eine eigene MariaDB/MySQL-Datenbank. Auf Hostsharing läuft MariaDB, was die empfohlene Variante ist, da b1gMail MySQL 8 und höher aktuell noch nicht voll unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Catchall-Postfach ===&lt;br /&gt;
In dem Setup wird als Empfangsmethode POP3-Gateway (Catchall) ausgewählt. Dazu muss eine Catchall E-Mail-Adresse eingerichtet werden, die alle E-Mails in einem Postfach ablegt.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
In dieser Anleitung wird b1gMail in dem sub-Ordner www eingerichtet, es kann aber auch jeder andere beliebiger Ort gewählt werden.&lt;br /&gt;
&lt;br /&gt;
Statt &amp;lt;domain.tld&amp;gt; setzt man die eigene Domain ein.&lt;br /&gt;
&lt;br /&gt;
Folgende Kommandos sind auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
rm -R ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
git clone https://codeberg.org/b1gMail/b1gMail.git&lt;br /&gt;
touch ~/b1gMail/src/serverlib/config.inc.php ~/b1gMail/src/serverlib/version.inc.php&lt;br /&gt;
ln -s ~/b1gMail/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird zur webbasierte Installation gewechselt, dazu ruft man &amp;lt;domain.tld&amp;gt;/setup ruft. Sobald man auf dem Schritt E-Mail-Konfiguration landet, wählt als Empfangs-Methode POP3-Gateway (CatchAll) und als POP3-Server &amp;quot;localhost&amp;quot;. Unter POP3-Benutzer und POP3-Passwort den Benutzer eintragen, der die CatchAll-E-Mail-Adresse hat. Als Versandmethode kann SMTP und als SMTP-Server sollte localhost stehen. Im nächsten Schritt die MySQL-Daten eintragen. Abschließend wird im letzten Schritt die E-Mail-Domain eingetragen und es kann ein Administrator-Passwort festgelegt werden. Erledigt!&lt;br /&gt;
&lt;br /&gt;
=== Empfang via Pipe-Gateway ===&lt;br /&gt;
&lt;br /&gt;
Statt POP3-Gateway können E-Mails auch an Pipe übergeben werden. Das hat gegenüber dem POP3-Gateway den Vorteil, dass b1gMail die E-Mails nicht abholen muss, sondern in Echtzeit direkt an b1gMail übergeben wird. Dazu stellt man die Empfangsmethode im Administrationsbereich unter Einstellungen -&amp;gt; E-Mail -&amp;gt; Empfang auf b1gMailServer / Pipe / Transportmap um.&lt;br /&gt;
&lt;br /&gt;
im Benutzerverzeichnis, bei dem die CatchAll-E-Mail-Adresse angelegt wurde, eine .forward mit folgenden Inhalt erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/php /home/pacs/&amp;lt;xyz00&amp;gt;/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/interface/pipe.php&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend prüfen, ob die E-Mails weiterhin zugestellt werden.&lt;br /&gt;
&lt;br /&gt;
== Add-On b1gMailServer ==&lt;br /&gt;
Das optionale Add-On b1gMailServer stellt POP3, IMAP und SMTP bereit. Es kann auch als MTA dienen, was aber hier nicht unterstützt wird. Es ist in C++ programmiert. Die webbasierte Administration selbst erfolgt über b1gMail mit dem Modul b1gMailServerAdmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das fertige binary ist ein Installer. Das kann aber nicht genutzt werden, da es root-Rechte braucht. Daher muss b1gMailServer selbst kompiliert und einige Änderungen im Quelltext vorgenommen werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installation b1gMailServer ===&lt;br /&gt;
&lt;br /&gt;
Zuerst muss in b1gMail-Administrationsbereich unter Plugins das Modul b1gMailServer Administration PlugIn aktiviert, damit die benötigte Datenbanktabellen für b1gMailServer angelegt werden. Anschließend geht es weiter mit SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir ~/b1gmailserver&lt;br /&gt;
mkdir ~/b1gmailserver/bin&lt;br /&gt;
mkdir ~/b1gmailserver/init&lt;br /&gt;
mkdir ~/b1gmailserver/plugins&lt;br /&gt;
mkdir ~/b1gmailserver/queue&lt;br /&gt;
mkdir ~/b1gmailserver/tls&lt;br /&gt;
git clone https://github.com/b1gMail/b1gMailServer.git b1gmailserver_src&lt;br /&gt;
cd ~/b1gmailserver_src&lt;br /&gt;
git checkout ubuntu-22.04-openssl-3.4.1&lt;br /&gt;
cd src&lt;br /&gt;
# Feste Pfade ersetzen, Platzhalter ersetzen und ggf. Pfad anpassen&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; *.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; init/*&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.h&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; msgqueue-supervise/*.h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_subdirectory(linux-setup-v2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In dists/CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_dependencies(${NAME}-copy b1gmailserver bms-queue setup)&lt;br /&gt;
&lt;br /&gt;
add_custom_target(${NAME})&lt;br /&gt;
add_custom_command(&lt;br /&gt;
  TARGET        ${NAME}&lt;br /&gt;
  COMMAND       ${CMAKE_SOURCE_DIR}/makeself-2.1.4/makeself.sh&lt;br /&gt;
    ${CMAKE_CURRENT_BINARY_DIR}/package/&lt;br /&gt;
    b1gmailserver-${BMS_VERSION}.${BMS_BUILD}-${BMS_ARCHNAME}.run&lt;br /&gt;
    &amp;quot;b1gMailServer ${BMS_VERSION}.${BMS_BUILD}&amp;quot;&lt;br /&gt;
    sh run-setup&lt;br /&gt;
)&lt;br /&gt;
add_dependencies(${NAME} ${NAME}-copy)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann b1gMailServer kompiliert werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=Release .&lt;br /&gt;
make -j&lt;br /&gt;
cp b1gmailserver ~/b1gmailserver/bin&lt;br /&gt;
cp sendmail/bms-sendmail ~/b1gmailserver/bin&lt;br /&gt;
cp msgqueue-supervise/bms-queue ~/b1gmailserver/bin&lt;br /&gt;
cp pluginsdk/CLIQueueMgr.so ~/b1gmailserver/plugins&lt;br /&gt;
cp init/bms-queue ~/b1gmailserver/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ~/b1gmailserver die Datei b1gmailserver.cfg mit folgenden Inhalt erstellen und die Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
# b1gMailServer configuration file&lt;br /&gt;
mysql_host  = localhost&lt;br /&gt;
mysql_user  = &amp;lt;dbuser&amp;gt;&lt;br /&gt;
mysql_pass  = &amp;lt;dbpassword&amp;gt;&lt;br /&gt;
mysql_db    = &amp;lt;db&amp;gt;&lt;br /&gt;
user        = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
group       = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere optionale Parameter: https://github.com/b1gMail-OSS/b1gMail/wiki/b1gMailServer:Konfigurationsdatei&lt;br /&gt;
&lt;br /&gt;
Mit ~/b1gmailserver/bin --help anschließend prüfen, ob die Hilfe ausgegeben wird. &lt;br /&gt;
&lt;br /&gt;
=== Dienste erstellen und starten === &lt;br /&gt;
&lt;br /&gt;
Mitglieder, die einen Managed Webspace im Shared Hosting nutzen, müssen für ihre b1gMailServer-Installation einen &amp;quot;eigenen Serverdienst&amp;quot; beim Hostsharing-Service anmelden. Diese Option ist im Shared Hosting kostenpflichtig. Für den Serverdienst wird ein IP-Port mit dem Server vereinbart. Im Beispiel werden die Ports 19110,19143,19993,19995,19465 und 19587 genutzt. Nicht alle Ports müssen auch genutzt werden, wenn man einige der angebotene Dienste nicht genutzt werden soll.&lt;br /&gt;
&lt;br /&gt;
b1gMailServer liefert im Installer standardmäßig die xinetd-Konfiguration aus und setzt dies im eigenen Installer voraus. Es ist aber möglich systemd dafür zu nutzen. Dazu muss folgendermaßen vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
Für IMAP sieht es folgendermaßen aus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir -p ~/.config/systemd/user/&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap@.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Datei soll sein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=b1gMailServer IMAP Service&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/bin/b1gmailserver --imap&lt;br /&gt;
StartLimitInterval=10s&lt;br /&gt;
StartLimitBurst=5&lt;br /&gt;
&lt;br /&gt;
StandardInput=socket&lt;br /&gt;
StandardOutput=interhit&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap.socket&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt dieser Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Socket for b1gMailServer IMAP service&lt;br /&gt;
&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=19143&lt;br /&gt;
Accept=yes&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sockets.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IMAP-Dienst wird aktiviert mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable b1gmailserver-imap.socket&lt;br /&gt;
systemctl --user start b1gmailserver-imap.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Submission, POP3 sowie POP3S und IMAPS einfach nochmal die Vorlage nehmen und entsprechend benennen. Für POP3 wird der Parameter --pop3 genutzt, bei Submission: --smtp --submission. Bei implizierten SSL/TLS-Verbindungen wird der Parameter um --ssl ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== SSL/TLS ===&lt;br /&gt;
&lt;br /&gt;
b1gMailServer unterstützt sowohl impliziert als auch expliziertes SSL/TLS. Um SSL/TLS zu nutzen wird ein Zertifikat benötigt. Hierzu kann man ein [[TLS Zertifikat mit LEGO]]. Das löschen der Weiterleitungen wie in der verlinkten Anleitung muss übrigens nicht sein, es muss einfach nur das weitergeleitete Zielverzeichnis angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~/.lego/certificates&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.key ~/b1gmailserver/tls/server.key&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.crt ~/b1gmailserver/tls/server.cert&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.issuer.crt ~/b1gmailserver/tls/chain.cert&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Leider bietet lego keine einzelne Zertifikate an (bei Zwischenzertifikate jedoch schon) und b1gMailServer erwartet bei server.cert exakt nur ein Zertifikat. Daher muss das letzte Zertifikat in server.cert mit einem Texteditor gelöscht werden. Ist man unsicher welches es ist, einfach chain.cert anschauen, es muss das Zertifikat gelöscht werden, dass bei chain.cert bereits vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
SMTP/Submission: SMTP/Submission unter b1gMailServer funktioniert aktuell nicht und schlägt fehl, weil es keine Datei unter dem Ordner queue ablegen kann, evtl. weil der Warteschlangen-Manager noch fehlt.&lt;br /&gt;
&lt;br /&gt;
== Z-Push (experimentell) ==&lt;br /&gt;
&lt;br /&gt;
Mit Z-Push können Clients angebunden werden, die das proprietäre Protokoll ActiveSync nutzen. Aktuell ist die Unterstützung mit b1gMail experimentell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/Z-Hub/Z-Push zpush&lt;br /&gt;
cd zpush&lt;br /&gt;
git checkout develop&lt;br /&gt;
cd src/backend&lt;br /&gt;
git clone https://github.com/b1gMail-OSS/zpush-b1gmail b1gmail&lt;br /&gt;
cd ..&lt;br /&gt;
ln -s ~/zpush/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/z-push&lt;br /&gt;
vi config.inc.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der config.inc.php dann den BACKEND_PROVIDER auf BackendB1GMail setzen. Ebenso muss der Pfad in LOGFILEDIR und STATE_DIR angepasst werden. Zum Schluss noch folgendes einfügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
  define(&#039;B1GMAIL_DB_HOST&#039;,		&#039;localhost&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_USER&#039;,		&#039;db_user&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PASS&#039;,		&#039;db_password&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_DB&#039;,			&#039;db&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PREFIX&#039;,	&#039;bm60_&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der .htaccess unter ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www folgendes einfügen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^Microsoft-Server-ActiveSync(/.*)?$ /z-push/index.php [L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Lki01-b1gmail</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7376</id>
		<title>B1gMail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7376"/>
		<updated>2025-06-03T17:56:17Z</updated>

		<summary type="html">&lt;p&gt;Lki01-b1gmail: Pipe-Gateway hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==b1gMail==&lt;br /&gt;
b1gMail ist ein E-Mail-System, das in der Programmiersprache PHP und JavaScript entwickelt wird. Im Gegensatz zu den anderen Webmailer ist b1gMail darauf ausgerichtet, Besuchern eine eigene E-Mail-Adresse anbieten zu können. Es kann aber auch intern betrieben werden. Daher liefert b1gMail ein eigenes Speichersystem mit und kann somit auch auf einem Webspace laufen. &lt;br /&gt;
&lt;br /&gt;
b1gMail verfügt über einen großen Funktionsumfang, wie beispielsweise Mehrsprachigkeit, Versand von E-Mail-Anhängen, volle Unterstützung für die Nachrichtenformate MIME und HTML, Kalender, Aufgabenliste, SMS-Unterstützung, umfangreiche Filterregeln sowie eingebauten Spam-Filter. Außerdem kann der Funktionsumfang von b1gMail mit Plug-ins erweitert werden.&lt;br /&gt;
==Einrichtung==&lt;br /&gt;
===Datenbank===&lt;br /&gt;
Zunächst benötigt b1gMail eine eigene MariaDB/MySQL-Datenbank. Auf Hostsharing läuft MariaDB, was die empfohlene Variante ist, da b1gMail MySQL 8 und höher aktuell noch nicht voll unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Catchall-Postfach ===&lt;br /&gt;
In dem Setup wird als Empfangsmethode POP3-Gateway (Catchall) ausgewählt. Dazu muss eine Catchall E-Mail-Adresse eingerichtet werden, die alle E-Mails in einem Postfach ablegt.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
In dieser Anleitung wird b1gMail in dem sub-Ordner www eingerichtet, es kann aber auch jeder andere beliebiger Ort gewählt werden.&lt;br /&gt;
&lt;br /&gt;
Statt &amp;lt;domain.tld&amp;gt; setzt man die eigene Domain ein.&lt;br /&gt;
&lt;br /&gt;
Folgende Kommandos sind auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
rm -R ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
git clone https://codeberg.org/b1gMail/b1gMail.git&lt;br /&gt;
touch ~/b1gMail/src/serverlib/config.inc.php ~/b1gMail/src/serverlib/version.inc.php&lt;br /&gt;
ln -s ~/b1gMail/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird zur webbasierte Installation gewechselt, dazu ruft man &amp;lt;domain.tld&amp;gt;/setup ruft. Sobald man auf dem Schritt E-Mail-Konfiguration landet, wählt als Empfangs-Methode POP3-Gateway (CatchAll) und als POP3-Server &amp;quot;localhost&amp;quot;. Unter POP3-Benutzer und POP3-Passwort den Benutzer eintragen, der die CatchAll-E-Mail-Adresse hat. Als Versandmethode kann SMTP und als SMTP-Server sollte localhost stehen. Im nächsten Schritt die MySQL-Daten eintragen. Abschließend wird im letzten Schritt die E-Mail-Domain eingetragen und es kann ein Administrator-Passwort festgelegt werden. Erledigt!&lt;br /&gt;
&lt;br /&gt;
=== Empfang via Pipe-Gateway ===&lt;br /&gt;
&lt;br /&gt;
Statt POP3-Gateway können E-Mails auch an Pipe übergeben werden. Das hat gegenüber dem POP3-Gateway den Vorteil, dass b1gMail die E-Mails nicht abholen muss, sondern in Echtzeit direkt an b1gMail übergeben wird. Dazu stellt man die Empfangsmethode im Administrationsbereich unter Einstellungen -&amp;gt; E-Mail -&amp;gt; Empfang auf b1gMailServer / Pipe / Transportmap um.&lt;br /&gt;
&lt;br /&gt;
im Benutzerverzeichnis, bei dem die CatchAll-E-Mail-Adresse angelegt wurde, eine .forward mit folgenden Inhalt erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;|/usr/bin/php /home/pacs/&amp;lt;xyz00&amp;gt;/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/interface/pipe.php&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anschließend prüfen, ob die E-Mails weiterhin zugestellt werden.&lt;br /&gt;
&lt;br /&gt;
== Add-On b1gMailServer ==&lt;br /&gt;
Das optionale Add-On b1gMailServer stellt POP3, IMAP und SMTP bereit. Es kann auch als MTA dienen, was aber hier nicht unterstützt wird. Es ist in C++ programmiert. Die webbasierte Administration selbst erfolgt über b1gMail mit dem Modul b1gMailServerAdmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das fertige binary ist ein Installer. Das kann aber nicht genutzt werden, da es root-Rechte braucht. Daher muss b1gMailServer selbst kompiliert und einige Änderungen im Quelltext vorgenommen werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installation b1gMailServer ===&lt;br /&gt;
&lt;br /&gt;
Zuerst muss in b1gMail-Administrationsbereich unter Plugins das Modul b1gMailServer Administration PlugIn aktiviert, damit die benötigte Datenbanktabellen für b1gMailServer angelegt werden. Anschließend geht es weiter mit SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir ~/b1gmailserver&lt;br /&gt;
mkdir ~/b1gmailserver/bin&lt;br /&gt;
mkdir ~/b1gmailserver/plugins&lt;br /&gt;
mkdir ~/b1gmailserver/queue&lt;br /&gt;
mkdir ~/b1gmailserver/tls&lt;br /&gt;
git clone https://github.com/b1gMail/b1gMailServer.git b1gmailserver_src&lt;br /&gt;
cd ~/b1gmailserver_src&lt;br /&gt;
git checkout ubuntu-22.04-openssl-3.4.1&lt;br /&gt;
cd src&lt;br /&gt;
# Feste Pfade ersetzen, Platzhalter ersetzen und ggf. Pfad anpassen&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; *.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; init/*&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_subdirectory(linux-setup-v2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In dists/CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_dependencies(${NAME}-copy b1gmailserver bms-queue setup)&lt;br /&gt;
&lt;br /&gt;
add_custom_target(${NAME})&lt;br /&gt;
add_custom_command(&lt;br /&gt;
  TARGET        ${NAME}&lt;br /&gt;
  COMMAND       ${CMAKE_SOURCE_DIR}/makeself-2.1.4/makeself.sh&lt;br /&gt;
    ${CMAKE_CURRENT_BINARY_DIR}/package/&lt;br /&gt;
    b1gmailserver-${BMS_VERSION}.${BMS_BUILD}-${BMS_ARCHNAME}.run&lt;br /&gt;
    &amp;quot;b1gMailServer ${BMS_VERSION}.${BMS_BUILD}&amp;quot;&lt;br /&gt;
    sh run-setup&lt;br /&gt;
)&lt;br /&gt;
add_dependencies(${NAME} ${NAME}-copy)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann b1gMailServer kompiliert werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=Release .&lt;br /&gt;
make -j&lt;br /&gt;
cp b1gmailserver ~/b1gmailserver/bin&lt;br /&gt;
cp sendmail/bms-sendmail ~/b1gmailserver/bin&lt;br /&gt;
cp msgqueue-supervise/bms-queue ~/b1gmailserver/bin&lt;br /&gt;
cp pluginsdk/CLIQueueMgr.so ~/b1gmailserver/plugins&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ~/b1gmailserver die Datei b1gmailserver.cfg mit folgenden Inhalt erstellen und die Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
# b1gMailServer configuration file&lt;br /&gt;
mysql_host  = localhost&lt;br /&gt;
mysql_user  = &amp;lt;dbuser&amp;gt;&lt;br /&gt;
mysql_pass  = &amp;lt;dbpassword&amp;gt;&lt;br /&gt;
mysql_db    = &amp;lt;db&amp;gt;&lt;br /&gt;
user        = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
group       = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere optionale Parameter: https://github.com/b1gMail-OSS/b1gMail/wiki/b1gMailServer:Konfigurationsdatei&lt;br /&gt;
&lt;br /&gt;
Mit ~/b1gmailserver/bin --help anschließend prüfen, ob die Hilfe ausgegeben wird. &lt;br /&gt;
&lt;br /&gt;
=== Dienste erstellen und starten === &lt;br /&gt;
&lt;br /&gt;
Mitglieder, die einen Managed Webspace im Shared Hosting nutzen, müssen für ihre b1gMailServer-Installation einen &amp;quot;eigenen Serverdienst&amp;quot; beim Hostsharing-Service anmelden. Diese Option ist im Shared Hosting kostenpflichtig. Für den Serverdienst wird ein IP-Port mit dem Server vereinbart. Im Beispiel werden die Ports 19110,19143,19993,19995,19465 und 19587 genutzt. Nicht alle Ports müssen auch genutzt werden, wenn man einige der angebotene Dienste nicht genutzt werden soll.&lt;br /&gt;
&lt;br /&gt;
b1gMailServer liefert im Installer standardmäßig die xinetd-Konfiguration aus und setzt dies im eigenen Installer voraus. Es ist aber möglich systemd dafür zu nutzen. Dazu muss folgendermaßen vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
Für IMAP sieht es folgendermaßen aus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir -p ~/.config/systemd/user/&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap@.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Datei soll sein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=b1gMailServer IMAP Service&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/bin/b1gmailserver --imap&lt;br /&gt;
StartLimitInterval=10s&lt;br /&gt;
StartLimitBurst=5&lt;br /&gt;
&lt;br /&gt;
StandardInput=socket&lt;br /&gt;
StandardOutput=interhit&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap.socket&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt dieser Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Socket for b1gMailServer IMAP service&lt;br /&gt;
&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=19143&lt;br /&gt;
Accept=yes&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sockets.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IMAP-Dienst wird aktiviert mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable b1gmailserver-imap.socket&lt;br /&gt;
systemctl --user start b1gmailserver-imap.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Submission, POP3 sowie POP3S und IMAPS einfach nochmal die Vorlage nehmen und entsprechend benennen. Für POP3 wird der Parameter --pop3 genutzt, bei Submission: --smtp --submission. Bei implizierten SSL/TLS-Verbindungen wird der Parameter um --ssl ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== SSL/TLS ===&lt;br /&gt;
&lt;br /&gt;
b1gMailServer unterstützt sowohl impliziert als auch expliziertes SSL/TLS. Um SSL/TLS zu nutzen wird ein Zertifikat benötigt. Hierzu kann man ein [[TLS Zertifikat mit LEGO]]. Das löschen der Weiterleitungen wie in der verlinkten Anleitung muss übrigens nicht sein, es muss einfach nur das weitergeleitete Zielverzeichnis angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~/.lego/certificates&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.key ~/b1gmailserver/tls/server.key&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.crt ~/b1gmailserver/tls/server.cert&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.issuer.crt ~/b1gmailserver/tls/chain.cert&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Leider bietet lego keine einzelne Zertifikate an (bei Zwischenzertifikate jedoch schon) und b1gMailServer erwartet bei server.cert exakt nur ein Zertifikat. Daher muss das letzte Zertifikat in server.cert mit einem Texteditor gelöscht werden. Ist man unsicher welches es ist, einfach chain.cert anschauen, es muss das Zertifikat gelöscht werden, dass bei chain.cert bereits vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
SMTP/Submission: SMTP/Submission unter b1gMailServer funktioniert aktuell nicht und schlägt fehl, weil es keine Datei unter dem Ordner queue ablegen kann, evtl. weil der Warteschlangen-Manager noch fehlt.&lt;br /&gt;
&lt;br /&gt;
== Z-Push (experimentell) ==&lt;br /&gt;
&lt;br /&gt;
Mit Z-Push können Clients angebunden werden, die das proprietäre Protokoll ActiveSync nutzen. Aktuell ist die Unterstützung mit b1gMail experimentell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/Z-Hub/Z-Push zpush&lt;br /&gt;
cd zpush&lt;br /&gt;
git checkout develop&lt;br /&gt;
cd src/backend&lt;br /&gt;
git clone https://github.com/b1gMail-OSS/zpush-b1gmail b1gmail&lt;br /&gt;
cd ..&lt;br /&gt;
ln -s ~/zpush/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/z-push&lt;br /&gt;
vi config.inc.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der config.inc.php dann den BACKEND_PROVIDER auf BackendB1GMail setzen. Ebenso muss der Pfad in LOGFILEDIR und STATE_DIR angepasst werden. Zum Schluss noch folgendes einfügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
  define(&#039;B1GMAIL_DB_HOST&#039;,		&#039;localhost&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_USER&#039;,		&#039;db_user&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PASS&#039;,		&#039;db_password&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_DB&#039;,			&#039;db&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PREFIX&#039;,	&#039;bm60_&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der .htaccess unter ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www folgendes einfügen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^Microsoft-Server-ActiveSync(/.*)?$ /z-push/index.php [L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Lki01-b1gmail</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7375</id>
		<title>B1gMail</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=B1gMail&amp;diff=7375"/>
		<updated>2025-06-03T10:29:54Z</updated>

		<summary type="html">&lt;p&gt;Lki01-b1gmail: Die Seite wurde neu angelegt: „==b1gMail== b1gMail ist ein E-Mail-System, das in der Programmiersprache PHP und JavaScript entwickelt wird. Im Gegensatz zu den anderen Webmailer ist b1gMail darauf ausgerichtet, Besuchern eine eigene E-Mail-Adresse anbieten zu können. Es kann aber auch intern betrieben werden. Daher liefert b1gMail ein eigenes Speichersystem mit und kann somit auch auf einem Webspace laufen.   b1gMail verfügt über einen großen Funktionsumfang, wie beispielsweise Meh…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==b1gMail==&lt;br /&gt;
b1gMail ist ein E-Mail-System, das in der Programmiersprache PHP und JavaScript entwickelt wird. Im Gegensatz zu den anderen Webmailer ist b1gMail darauf ausgerichtet, Besuchern eine eigene E-Mail-Adresse anbieten zu können. Es kann aber auch intern betrieben werden. Daher liefert b1gMail ein eigenes Speichersystem mit und kann somit auch auf einem Webspace laufen. &lt;br /&gt;
&lt;br /&gt;
b1gMail verfügt über einen großen Funktionsumfang, wie beispielsweise Mehrsprachigkeit, Versand von E-Mail-Anhängen, volle Unterstützung für die Nachrichtenformate MIME und HTML, Kalender, Aufgabenliste, SMS-Unterstützung, umfangreiche Filterregeln sowie eingebauten Spam-Filter. Außerdem kann der Funktionsumfang von b1gMail mit Plug-ins erweitert werden.&lt;br /&gt;
==Einrichtung==&lt;br /&gt;
===Datenbank===&lt;br /&gt;
Zunächst benötigt b1gMail eine eigene MariaDB/MySQL-Datenbank. Auf Hostsharing läuft MariaDB, was die empfohlene Variante ist, da b1gMail MySQL 8 und höher aktuell noch nicht voll unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Catchall-Postfach ===&lt;br /&gt;
In dem Setup wird als Empfangsmethode POP3-Gateway (Catchall) ausgewählt. Dazu muss eine Catchall E-Mail-Adresse eingerichtet werden, die alle E-Mails in einem Postfach ablegt.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
In dieser Anleitung wird b1gMail in dem sub-Ordner www eingerichtet, es kann aber auch jeder andere beliebiger Ort gewählt werden.&lt;br /&gt;
&lt;br /&gt;
Statt &amp;lt;domain.tld&amp;gt; setzt man die eigene Domain ein.&lt;br /&gt;
&lt;br /&gt;
Folgende Kommandos sind auszuführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
rm -R ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
git clone https://codeberg.org/b1gMail/b1gMail.git&lt;br /&gt;
touch ~/b1gMail/src/serverlib/config.inc.php ~/b1gMail/src/serverlib/version.inc.php&lt;br /&gt;
ln -s ~/b1gMail/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird zur webbasierte Installation gewechselt, dazu ruft man &amp;lt;domain.tld&amp;gt;/setup ruft. Sobald man auf dem Schritt E-Mail-Konfiguration landet, wählt als Empfangs-Methode POP3-Gateway (CatchAll) und als POP3-Server &amp;quot;localhost&amp;quot;. Unter POP3-Benutzer und POP3-Passwort den Benutzer eintragen, der die CatchAll-E-Mail-Adresse hat. Als Versandmethode kann SMTP und als SMTP-Server sollte localhost stehen. Im nächsten Schritt die MySQL-Daten eintragen. Abschließend wird im letzten Schritt die E-Mail-Domain eingetragen und es kann ein Administrator-Passwort festgelegt werden. Erledigt!&lt;br /&gt;
&lt;br /&gt;
== Add-On b1gMailServer ==&lt;br /&gt;
Das optionale Add-On b1gMailServer stellt POP3, IMAP und SMTP bereit. Es kann auch als MTA dienen, was aber hier nicht unterstützt wird. Es ist in C++ programmiert. Die webbasierte Administration selbst erfolgt über b1gMail mit dem Modul b1gMailServerAdmin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Das fertige binary ist ein Installer. Das kann aber nicht genutzt werden, da es root-Rechte braucht. Daher muss b1gMailServer selbst kompiliert und einige Änderungen im Quelltext vorgenommen werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installation b1gMailServer ===&lt;br /&gt;
&lt;br /&gt;
Zuerst muss in b1gMail-Administrationsbereich unter Plugins das Modul b1gMailServer Administration PlugIn aktiviert, damit die benötigte Datenbanktabellen für b1gMailServer angelegt werden. Anschließend geht es weiter mit SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir ~/b1gmailserver&lt;br /&gt;
mkdir ~/b1gmailserver/bin&lt;br /&gt;
mkdir ~/b1gmailserver/plugins&lt;br /&gt;
mkdir ~/b1gmailserver/queue&lt;br /&gt;
mkdir ~/b1gmailserver/tls&lt;br /&gt;
git clone https://github.com/b1gMail/b1gMailServer.git b1gmailserver_src&lt;br /&gt;
cd ~/b1gmailserver_src&lt;br /&gt;
git checkout ubuntu-22.04-openssl-3.4.1&lt;br /&gt;
cd src&lt;br /&gt;
# Feste Pfade ersetzen, Platzhalter ersetzen und ggf. Pfad anpassen&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; *.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.cpp&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; init/*&lt;br /&gt;
sed -i &#039;s|/opt/b1gmailserver|/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver|g&#039; core/*.h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_subdirectory(linux-setup-v2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In dists/CMakeLists.txt muss folgendes entfernt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
add_dependencies(${NAME}-copy b1gmailserver bms-queue setup)&lt;br /&gt;
&lt;br /&gt;
add_custom_target(${NAME})&lt;br /&gt;
add_custom_command(&lt;br /&gt;
  TARGET        ${NAME}&lt;br /&gt;
  COMMAND       ${CMAKE_SOURCE_DIR}/makeself-2.1.4/makeself.sh&lt;br /&gt;
    ${CMAKE_CURRENT_BINARY_DIR}/package/&lt;br /&gt;
    b1gmailserver-${BMS_VERSION}.${BMS_BUILD}-${BMS_ARCHNAME}.run&lt;br /&gt;
    &amp;quot;b1gMailServer ${BMS_VERSION}.${BMS_BUILD}&amp;quot;&lt;br /&gt;
    sh run-setup&lt;br /&gt;
)&lt;br /&gt;
add_dependencies(${NAME} ${NAME}-copy)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend kann b1gMailServer kompiliert werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=Release .&lt;br /&gt;
make -j&lt;br /&gt;
cp b1gmailserver ~/b1gmailserver/bin&lt;br /&gt;
cp sendmail/bms-sendmail ~/b1gmailserver/bin&lt;br /&gt;
cp msgqueue-supervise/bms-queue ~/b1gmailserver/bin&lt;br /&gt;
cp pluginsdk/CLIQueueMgr.so ~/b1gmailserver/plugins&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In ~/b1gmailserver die Datei b1gmailserver.cfg mit folgenden Inhalt erstellen und die Platzhalter ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
# b1gMailServer configuration file&lt;br /&gt;
mysql_host  = localhost&lt;br /&gt;
mysql_user  = &amp;lt;dbuser&amp;gt;&lt;br /&gt;
mysql_pass  = &amp;lt;dbpassword&amp;gt;&lt;br /&gt;
mysql_db    = &amp;lt;db&amp;gt;&lt;br /&gt;
user        = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
group       = &amp;lt;xyz00&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere optionale Parameter: https://github.com/b1gMail-OSS/b1gMail/wiki/b1gMailServer:Konfigurationsdatei&lt;br /&gt;
&lt;br /&gt;
Mit ~/b1gmailserver/bin --help anschließend prüfen, ob die Hilfe ausgegeben wird. &lt;br /&gt;
&lt;br /&gt;
=== Dienste erstellen und starten === &lt;br /&gt;
&lt;br /&gt;
Mitglieder, die einen Managed Webspace im Shared Hosting nutzen, müssen für ihre b1gMailServer-Installation einen &amp;quot;eigenen Serverdienst&amp;quot; beim Hostsharing-Service anmelden. Diese Option ist im Shared Hosting kostenpflichtig. Für den Serverdienst wird ein IP-Port mit dem Server vereinbart. Im Beispiel werden die Ports 19110,19143,19993,19995,19465 und 19587 genutzt. Nicht alle Ports müssen auch genutzt werden, wenn man einige der angebotene Dienste nicht genutzt werden soll.&lt;br /&gt;
&lt;br /&gt;
b1gMailServer liefert im Installer standardmäßig die xinetd-Konfiguration aus und setzt dies im eigenen Installer voraus. Es ist aber möglich systemd dafür zu nutzen. Dazu muss folgendermaßen vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
Für IMAP sieht es folgendermaßen aus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
mkdir -p ~/.config/systemd/user/&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap@.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt der Datei soll sein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=b1gMailServer IMAP Service&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/home/pacs/&amp;lt;xyz00&amp;gt;/b1gmailserver/bin/b1gmailserver --imap&lt;br /&gt;
StartLimitInterval=10s&lt;br /&gt;
StartLimitBurst=5&lt;br /&gt;
&lt;br /&gt;
StandardInput=socket&lt;br /&gt;
StandardOutput=interhit&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=shell&amp;gt;&lt;br /&gt;
vi  ~/.config/systemd/user/b1gmailserver-imap.socket&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt dieser Datei:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Socket for b1gMailServer IMAP service&lt;br /&gt;
&lt;br /&gt;
[Socket]&lt;br /&gt;
ListenStream=19143&lt;br /&gt;
Accept=yes&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sockets.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IMAP-Dienst wird aktiviert mit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable b1gmailserver-imap.socket&lt;br /&gt;
systemctl --user start b1gmailserver-imap.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Submission, POP3 sowie POP3S und IMAPS einfach nochmal die Vorlage nehmen und entsprechend benennen. Für POP3 wird der Parameter --pop3 genutzt, bei Submission: --smtp --submission. Bei implizierten SSL/TLS-Verbindungen wird der Parameter um --ssl ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== SSL/TLS ===&lt;br /&gt;
&lt;br /&gt;
b1gMailServer unterstützt sowohl impliziert als auch expliziertes SSL/TLS. Um SSL/TLS zu nutzen wird ein Zertifikat benötigt. Hierzu kann man ein [[TLS Zertifikat mit LEGO]]. Das löschen der Weiterleitungen wie in der verlinkten Anleitung muss übrigens nicht sein, es muss einfach nur das weitergeleitete Zielverzeichnis angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Anschließend&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~/.lego/certificates&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.key ~/b1gmailserver/tls/server.key&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.crt ~/b1gmailserver/tls/server.cert&lt;br /&gt;
cp &amp;lt;ihredomain.tld&amp;gt;.issuer.crt ~/b1gmailserver/tls/chain.cert&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Leider bietet lego keine einzelne Zertifikate an (bei Zwischenzertifikate jedoch schon) und b1gMailServer erwartet bei server.cert exakt nur ein Zertifikat. Daher muss das letzte Zertifikat in server.cert mit einem Texteditor gelöscht werden. Ist man unsicher welches es ist, einfach chain.cert anschauen, es muss das Zertifikat gelöscht werden, dass bei chain.cert bereits vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
SMTP/Submission: SMTP/Submission unter b1gMailServer funktioniert aktuell nicht und schlägt fehl, weil es keine Datei unter dem Ordner queue ablegen kann, evtl. weil der Warteschlangen-Manager noch fehlt.&lt;br /&gt;
&lt;br /&gt;
== Z-Push (experimentell) ==&lt;br /&gt;
&lt;br /&gt;
Mit Z-Push können Clients angebunden werden, die das proprietäre Protokoll ActiveSync nutzen. Aktuell ist die Unterstützung mit b1gMail experimentell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/Z-Hub/Z-Push zpush&lt;br /&gt;
cd zpush&lt;br /&gt;
git checkout develop&lt;br /&gt;
cd src/backend&lt;br /&gt;
git clone https://github.com/b1gMail-OSS/zpush-b1gmail b1gmail&lt;br /&gt;
cd ..&lt;br /&gt;
ln -s ~/zpush/src ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www/z-push&lt;br /&gt;
vi config.inc.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der config.inc.php dann den BACKEND_PROVIDER auf BackendB1GMail setzen. Ebenso muss der Pfad in LOGFILEDIR und STATE_DIR angepasst werden. Zum Schluss noch folgendes einfügen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
  define(&#039;B1GMAIL_DB_HOST&#039;,		&#039;localhost&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_USER&#039;,		&#039;db_user&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PASS&#039;,		&#039;db_password&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_DB&#039;,			&#039;db&#039;);&lt;br /&gt;
	define(&#039;B1GMAIL_DB_PREFIX&#039;,	&#039;bm60_&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der .htaccess unter ~/doms/&amp;lt;domain.tld&amp;gt;/subs-ssl/www folgendes einfügen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=ini line&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^Microsoft-Server-ActiveSync(/.*)?$ /z-push/index.php [L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Lki01-b1gmail</name></author>
	</entry>
</feed>