{"id":2245,"date":"2026-04-10T18:27:30","date_gmt":"2026-04-10T16:27:30","guid":{"rendered":"https:\/\/grupp-web.de\/cms\/?p=2245"},"modified":"2026-04-10T18:27:31","modified_gmt":"2026-04-10T16:27:31","slug":"stalwart-mailserver-sendmail-auf-systemebene-wie-geht-das-zusammen","status":"publish","type":"post","link":"https:\/\/grupp-web.de\/cms\/2026\/04\/10\/stalwart-mailserver-sendmail-auf-systemebene-wie-geht-das-zusammen\/","title":{"rendered":"Stalwart Mailserver &amp; Sendmail auf Systemebene &#8211; wie geht das zusammen?"},"content":{"rendered":"\n<p>Auf den Chemnitzer Linuxtagen 2026 habe ich den Vortrag &#8222;E-Mail, Kalender, Kontakte und Dateien mit Stalwart&#8220; gehalten (<a href=\"https:\/\/media.ccc.de\/v\/clt26-369-e-mail-kalender-kontakte-und-dateien-mit-stalwart\" data-type=\"link\" data-id=\"https:\/\/media.ccc.de\/v\/clt26-369-e-mail-kalender-kontakte-und-dateien-mit-stalwart\" target=\"_blank\" rel=\"noreferrer noopener\">Video-Aufzeichnung ist hier verf\u00fcgbar<\/a>). Was ich dort noch nicht thematisiert habe war das Thema <code>sendmail<\/code>-Kompatibilit\u00e4t. Die wird auf dem System selbst ben\u00f6tigt damit Tools wie <code>apticron<\/code>, <code>cron<\/code>, <code>mail<\/code>, &#8230; u.v.m., die f\u00fcr ihre Benachrichtigungsmails einfach <code>sendmail<\/code> verwenden, ihre Mails auch ausgeliefert bekommen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Stalwart ist kein Sendmail-Ersatz!<\/h2>\n\n\n\n<p>Stalwart bringt kein <code>sendmail<\/code>-kompatibles Binary \/ Skript mit. Mails die auf diesem Weg ausgeliefert werden bleiben im Default-MTA des Systems liegen wenn Stalwart installiert ist! Da muss also eine andere L\u00f6sung her.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Stalwart &#8222;battelt&#8220; sich ohnehin mit Exim oder Postfix<\/h2>\n\n\n\n<p>Standardm\u00e4\u00dfig ist z.B. auf einem Debian System (ich habe da zum aktuellen Zeitpunkt die Version 13 am Start) der MTA Exim installiert. Der kann zwar durch Postfix ersetzt werden, was aber nur vom Regen in die Traufe f\u00fchrt da beide z.B. den Port 25 f\u00fcr sich reklamieren. Den ben\u00f6tigt aber nat\u00fcrlich auch Stalwart.<\/p>\n\n\n\n<p>In Debian ist Stalwart bislang nicht paketiert! Damit ist Stalwart aber auch kein Ersatz f\u00fcr Exim oder Postfix die das zwingend ben\u00f6tigte Feature <code>mail-transport-agent<\/code> zur Verf\u00fcgung stellen. Exim oder Postfix einfach zu deinstallieren ist somit schon mal nicht so einfach, au\u00dferdem wird noch ein <code>sendmail<\/code>-Ersatz ben\u00f6tigt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><code>msmtp<\/code> als L\u00f6sung<\/h2>\n\n\n\n<p>Als eine m\u00f6gliche L\u00f6sung bietet sich hier <code>msmtp<\/code> an. Es bietet in einem Debian-System<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>das ben\u00f6tigte Feature <code>mail-transport-agent<\/code> an, <\/li>\n\n\n\n<li>kann also sauber Exim oder Postfix ersetzen,<\/li>\n\n\n\n<li>ersetzt kompatibel <code>sendmail<\/code>,<\/li>\n\n\n\n<li>leitet eingehende <code>sendmail<\/code>-Mail an ein zu definierendes Postfach weiter<\/li>\n<\/ul>\n\n\n\n<p>Gesagt getan. Die Installation erfolgt mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\u250c\u2500\u2500 12:55 - root@s3: [ ~ ]  \n\u2514\u2500# apt install msmtp msmtp-mta bsd-mailx<\/code><\/pre>\n\n\n\n<p>Dabei wird Exim automatisch deinstalliert und ersetzt. Wurde nun Stalwart schon f\u00fcr mindestens eine Domain funktionsf\u00e4hig konfiguriert, kann <code>msmtp<\/code> passend als MTA konfiguriert werden. Per <code>sendmail<\/code> eingehende Mails werden dann von <code>msmtp<\/code> an ein in Stalwart konfiguriertes Postfach bzw. Alias eines Postfachs weitergeleitet.<\/p>\n\n\n\n<p>Die von mir im ersten Anlauf verwendete <code>msmtp<\/code>-Konfiguration liegt in der Datei <code>\/etc\/msmtprc<\/code> und sieht wie folgt aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">defaults\nauth           off\ntls            off\naliases        \/etc\/aliases\ndomain         s3.grupp-web.de\nsource_ip      194.59.205.84\nlogfile        \/var\/log\/msmtp\n\naccount local\nfrom root@grupp-web.de\nhost 127.0.0.1\nport 25\n\naccount default : local<\/code><\/pre>\n\n\n\n<p>Die wichtigsten Parameter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>domain: Wird beim EHLO-Kontakt mit Stalwart verwendet<\/li>\n\n\n\n<li>source_ip: Diese IP (die \u00f6ffentliche IP) statt 127.0.0.1 verwenden da die laut SPF-Record befugt ist Mails zu versenden. Das verbessert das Spam-Scoring<\/li>\n\n\n\n<li>logfile: Die hier angegebene Datei ist in Apparmor freigegeben<\/li>\n\n\n\n<li>aliases: Erlaubt die Verwendung der nicht gehashten Aliases-Datei um z.B. lokale Mails an <code>root<\/code> mit einer externe Aliase-Adresse zu versehen die <code>msmtp<\/code> dann als To:-Adresse verwendet.<\/li>\n\n\n\n<li>Der Account local verweist auf den lokal laufenden SMTP-Listener von Stalwart<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf den Chemnitzer Linuxtagen 2026 habe ich den Vortrag &#8222;E-Mail, Kalender, Kontakte und Dateien mit Stalwart&#8220; gehalten (Video-Aufzeichnung ist hier verf\u00fcgbar). Was ich dort noch nicht thematisiert habe war das Thema sendmail-Kompatibilit\u00e4t. Die wird auf dem System selbst ben\u00f6tigt damit Tools wie apticron, cron, mail, &#8230; u.v.m., die f\u00fcr ihre Benachrichtigungsmails einfach sendmail verwenden, ihre &#8230; <a title=\"Stalwart Mailserver &amp; Sendmail auf Systemebene &#8211; wie geht das zusammen?\" class=\"read-more\" href=\"https:\/\/grupp-web.de\/cms\/2026\/04\/10\/stalwart-mailserver-sendmail-auf-systemebene-wie-geht-das-zusammen\/\" aria-label=\"Mehr Informationen \u00fcber Stalwart Mailserver &amp; Sendmail auf Systemebene &#8211; wie geht das zusammen?\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,5],"tags":[],"class_list":["post-2245","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-linux"],"_links":{"self":[{"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/posts\/2245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/comments?post=2245"}],"version-history":[{"count":2,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/posts\/2245\/revisions"}],"predecessor-version":[{"id":2247,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/posts\/2245\/revisions\/2247"}],"wp:attachment":[{"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/media?parent=2245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/categories?post=2245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grupp-web.de\/cms\/wp-json\/wp\/v2\/tags?post=2245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}