Welche Strategie sollte ich verwenden, um einen SMTP-Server unter Linux zu installieren? für Multithread-Dienste

Welche Strategie sollte ich verwenden, um einen SMTP-Server unter Linux zu installieren? für Multithread-Dienste

Hallo zusammen, ich muss einen Dienst implementieren, der den Benutzern Erinnerungen per E-Mail sendet. Dies sollte ein zeitgesteuertes Multithread-System sein. Dieser Teil ist in Ordnung, aber ich muss einen SMTP-Server für ausgehende E-Mails auf dem Server installieren und konfigurieren. Ich habe keine Ahnung, wie das geht oder was mich erwartet. Meine Tools werden Lamp Combo auf einem Linux-Slice (ich schätze Ubuntu) sein.

Antwort1

Die Installation ist sehr distributionsspezifisch, da es von Distributionen empfohlene Methoden zur Installation von Software gibt. Heutzutage würde ich nur noch sehr selten jemandem empfehlen, Postfix auf einer Linux-Distribution über den Quellcode zu installieren.

Verwenden Sie unter Ubuntu apt-get.

$ sudo apt-get install postfix

Dadurch wird Postfix auf Ihrem Ubuntu-Server installiert und die Konfiguration bleibt Ihnen überlassen. Ich empfehle, E-Mails an die Sendmail-Binärdatei weiterzuleiten (normalerweise unter /usr/sbin/sendmail), die E-Mails in einer Warteschlange hält, wenn das Postfix-System ausfällt. Wenn Sie SMTP verwenden und eine Verbindung zu Port 25 herstellen und Ihr Mailserver wegen Wartungsarbeiten ausfallen muss, muss Ihre Anwendung ihre eigene E-Mail-Warteschlange verwalten, da sonst die Gefahr besteht, dass E-Mails nicht zugestellt werden.

Antwort2

Installieren Sie Postfix. Folgen Sie dabei den Anweisungen aufPostfix.org

Antwort3

Sie könnten auch exim4 installieren. Dies ist zwar bei schwierigen Setups komplizierter (aufgrund der Hacker-Techniken von Debian), aber die Einrichtung zum Weiterleiten von E-Mails ist viel einfacher. Führen Sie dazu einfach apt-get install exim4 aus und konfigurieren Sie anschließend bei Bedarf exim4-config mit dpkg neu.

Antwort4

Es ist nicht allzu schwer, Postfix aus dem Quellcode zu erstellen, wenn Sie schon einmal Code aus dem Quellcode erstellt/kompiliert haben.

Wir verwenden mailx zum Senden ausgehender E-Mails und mailx kommuniziert mit einem Postfix-SMTP-Server für den eigentlichen Relay-Punkt.

Sobald ein Postfix-Server eingerichtet und ausgeführt wird, können andere externe Server zur E-Mail-Weiterleitung darauf verweisen.

Wir verwenden einen skriptbasierten Build-Prozess, um Postfix auf unserer Linux-Distribution (Pozix Linux) zu erstellen.

Hier ist der Befehl, den wir zum Erstellen von Postfix-Make-Dateien verwenden:

Erstellen Sie Makefiles 'CCARGS=-DHAS_PGSQL -DUSE_TLS -I/usr/local/pgsql-8.2.13/include -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/include/sasl -I/usr/local/BerkeleyDB/include' 'AUXLIBS=-L/usr/local/lib -L/usr/local/pgsql-8.2.13/lib -L/usr/local/BerkeleyDB/lib -lpq -lsasl2 -lz -lm -lssl -lcrypto -lpthread'

Sie können dies an Ihre Bedürfnisse anpassen. Da wir PostgreSQL verwenden, haben wir: -L/usr/local/pgsql-8.2.13/lib -lpq

Sie können diese eliminieren, wenn Sie keine PostgreSQL-Unterstützung benötigen; dasselbe gilt für SASL und TLS.

Nachdem dieser Befehl ausgeführt wurde,

make install (für Neuinstallation) make upgrade (zum Upgrade einer früheren Version)

Damit Mailx funktioniert, haben wir normalerweise einen CRON-Job, der ein Skript als Root aufruft.

Das Skript ruft wiederum mailx auf.

MAILX verwendet eine .rc-Datei zum Lesen von Umgebungsvariablen und da wir mailx als Root-Benutzer aufrufen, müssen wir eine Datei namens „.mailrc“ im Stammverzeichnis des Root-Benutzers ablegen.

Der Inhalt von .mailrc sieht wie folgt aus:

Satz[email geschützt] setze smtp=mail.meinedomain.com setze[email geschützt] setze smtp-auth-password=alertspassword setze smtp-auth=login

Dann rufen wir mailx in unseren Skripten wie folgt auf:

echo "Testnachricht" | mailx "[email geschützt] [email geschützt]" -s "E-Mail-Betreff" "E-Mail-Text"

oder Sie könnten Folgendes tun:

mailx -s "Betreff" -a /Pfad/zu/einer/Datei[email geschützt]

Dabei ermöglicht Ihnen -a das Anhängen einer Datei und test.msg ist eine externe Datei, die in den E-Mail-Text eingelesen wird.

oder eine andere Möglichkeit, ähnlich wie die erste mit Dateianhang, ist:

echo "Nachrichtentext" | mailx -s "Betreff" -a /Pfad/zu/einer/Datei[email geschützt]

verwandte Informationen