{"id":753,"date":"2023-10-05T08:00:00","date_gmt":"2023-10-05T06:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=753"},"modified":"2024-07-24T06:11:20","modified_gmt":"2024-07-24T04:11:20","slug":"postfix-mailserver","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2023\/10\/05\/postfix-mailserver\/","title":{"rendered":"Postfix Mailserver"},"content":{"rendered":"\n<p>Dieser Artikel zeigt eine einfache M\u00f6glichkeit, um auch die PHP Mailfunktion lokal zu testen.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>In den vorherigen Artikeln wurde der Apache Webserver und PHP installiert. Damit l\u00e4sst sich schon einiges anstellen. Durch die Installation von PHP sind auch schon dynamische Webseiten m\u00f6glich. Eigene PHP-Codes k\u00f6nnen in einer lokalen Webserverumgebung bereits getestet werden. Doch sp\u00e4testens wenn man sich mit dem PHP Mailformular besch\u00e4ftigt, st\u00f6\u00dft man an eine Grenze. Ein PHP Mailformular \u201ekommuniziert\u201c mit einem Mailserver und der fehlt noch in unserer Serverumgebung.<\/p>\n\n\n\n<p><strong>Postfix Installlation<\/strong><\/p>\n\n\n\n<p>Der Postfix Mailserver kann mit folgendem Terminalbefehl installiert werden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sudo apt install postfix libsasl2-modules bsd-mailx<\/li>\n<\/ul>\n\n\n\n<p><strong>Postfix Konfiguration<\/strong><\/p>\n\n\n\n<p>Als Installationsart wurde \u201eNur lokal\u201c ausgew\u00e4hlt. Als System E-Mail Name wurde der voreingestellte Eintrag \u00fcbernommen. Als Mailempf\u00e4nger f\u00fcr Root und Postmaster wurde Benutzer@Rechnername \u00fcbernommen. Weitere Rechner f\u00fcr Mailadresse kann leer bleiben, wenn keine weiteren Rechner n\u00f6tig sind. Synchrone Aktualisierungen k\u00f6nnen deaktiviert bleiben\u2026 Teilnetz-Weiterleitung: entweder leer lassen oder Voreinstellungen \u00fcbernehmen. Postfach Gr\u00f6\u00dfe: keine Begrenzung mit Wert 0 ausw\u00e4hlen\u2026 Adress-Erweiterungen: Einstellung leer lassen Internet-Protokolle: Die Vorauswahl \u201ealle\u201c best\u00e4tigen\u2026 Auch wenn bei einigen Punkten schnell \u00fcber sehr d\u00fcnnes Eis ge-huscht wurde, sind die Konfigurations-Dialoge schon teilweise hilfreich. F\u00fcr eine erste Grundkonfiguration sollte es reichen.<\/p>\n\n\n\n<p><strong>Funktionstest 1:<\/strong><\/p>\n\n\n\n<p>Im Terminal kann eine Testmail verschickt werden, um zu pr\u00fcfen ob alles richtig funktioniert\u2026 Der echte Terminalbefehl muss nat\u00fcrlich an die lokale Mailadresse angepasst werden. mail -s \u201etestbetreff\u201c BENUTZER@RECHNERNAME > testmailtext.txt Damit dieser Test auch erfolgreich verl\u00e4uft, muss die Textdatei (testmailtext.txt) auch noch angelegt werden und direkt ins Home-Verzeichnis abgespeichert werden. <\/p>\n\n\n\n<p>Thunderbird Movemail-Konto einrichten: \u00dcber das Thunderbird Datei-Men\u00fc per Auswahl \u201eNeu > Andere Konten > Movemailkonto\u201c ein neues Movemailkonto anlegen. Als Mailadresse im Movemailkonto habe ich \u201euser@localhost\u201c angegeben. Obwohl das PHP Kontaktformular auf \u201enutzer@Laptop\u201c eingestellt ist, kommt die Mail in Thunderbird schon an. Frage: Welche Rolle spielen also die Eintragungen in Thunderbird? Antwort: Die Empf\u00e4ngeradresse ist wichtig und muss mit der im Mailserversystem hinterlegten Mailadresse \u00fcbereinstimmen.<\/p>\n\n\n\n<p><strong>Funktionstest 2:<\/strong><\/p>\n\n\n\n<p>Per Terminal k\u00f6nnen jetzt schon lokale Mails an das Thunderbird Movemailkonto verschickt werden. Die erste Variante mit der Textdatei wurde oben schon beschrieben. Es geht aber auch ohne externe Textdatei: echo \u201eIch bin der Nachrichtentext\u201c | mail -s\u201cBetreff\u201c BENUTZER@RECHNERNAME<\/p>\n\n\n\n<p><strong>Funktionstest 3:<\/strong><\/p>\n\n\n\n<p>Nun geht es endlich zum PHP Kontaktformular\u2026<\/p>\n\n\n\n<p>Datei 1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form action=\"kontaktformular-02.php\" method=\"post\">\nVorname: &#91;Einzeiliges Eingabefeld]\n&lt;br \/>\n&lt;input type=\"text\" name=\"vorname\" size=\"30\" maxlength=\"30\">\n&lt;br \/>&lt;br \/>\n&lt;textarea name=\"user_eingabe\" cols=\"50\" rows=\"10\">&lt;\/textarea>\n&lt;input type=\"submit\" value=\"Absenden\">\n&lt;input type=\"reset\" value=\"Reset\">\n&lt;br \/>&lt;br \/>\n&lt;\/form><\/code><\/pre>\n\n\n\n<p>Datei 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$empfaenger = \u201eBENUTZER@RECHNERNAME\u201c;\n$betreff = \u201eKontaktformular\u201c;\n$from = \u201eFrom: info@localhost \u201c;\n$text =\n\u201e\nVorname: $_POST&#91;vorname]\nNachricht:\n$_POST&#91;user_eingabe]\n\u201e;\nmail($empfaenger, $betreff, $text, $from);\n?><\/code><\/pre>\n\n\n\n<p>Formular und PHP-Code werden wieder in zwei verschiedenen Dateien eingebaut. Die erste Webseite (kontaktformular-01.php) wird nun \u00fcber die lokale Serverumgebung aufgerufen. Wird das ausgef\u00fcllte Formular nun abgeschickt, landet eine entsprechende E-Mail als Movemail im Posteingang von Thunderbird. Ein echter SMTP und POP Mailserver ist damit zwar noch nicht aufgesetzt, doch die PHP Mailfunktion kann zumindest lokal getestet werden und nur darum ging es ja bei diesem Projekt\u2026 S\u00e4mtliche Beispiele ab der Apache Webserver Installation f\u00fcr HTML (ohne CSS) und PHP waren absichtlich nur sehr oberfl\u00e4chlich erkl\u00e4rt, um den Rahmen nicht zu sprengen. Eventuell ergibt sich zuk\u00fcnftig noch ein detaillierterer Blick in die Thematik HTML mit CSS und PHP.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Artikel zeigt eine einfache M\u00f6glichkeit, um auch die PHP Mailfunktion lokal zu testen.<\/p>\n","protected":false},"author":1,"featured_media":670,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[21,23],"class_list":["post-753","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-gruppe-peine","tag-webdesign-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=753"}],"version-history":[{"count":2,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/753\/revisions"}],"predecessor-version":[{"id":1658,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/753\/revisions\/1658"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/670"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}