it-swarm.com.de

Kann ich Systemmail für die Verwendung eines externen SMTP-Servers einrichten?

Ist es möglich, Systemmail auf einer Linux-Box einzurichten, die über einen anderen SMTP-Server gesendet werden soll - vielleicht sogar mit Authentifizierung? Wenn ja, wie mache ich das?

Wenn das unklar ist, geben wir ein Beispiel. Wenn ich an der Kommandozeile bin und tippe:

cat body.txt | mail -s "just a test" [email protected]

ist es möglich, dass dies über einen externen SMTP-Server wie G-Mail gesendet wird?

Ich suche nicht nach einer Möglichkeit, E-Mails von Google Mail über die Befehlszeile zu senden, sondern nach einer Option, um das gesamte System für die Verwendung eines bestimmten SMTP-Servers oder möglicherweise eines Kontos auf einem SMTP-Server zu konfigurieren (möglicherweise überschreibt die Absenderadresse). .

78
cwd

Ich fand sSMTP sehr einfach zu bedienen.

In Debian-basierten Systemen:

apt-get install ssmtp

Bearbeiten Sie dann die Konfigurationsdatei in /etc/ssmtp/ssmtp.conf

Eine Beispielkonfiguration zur Verwendung von Google Mail zum Senden von E-Mails:

# root is the person who gets all mail for userids < 1000
[email protected]

# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES

Hinweis: Stellen Sie sicher, dass der Befehl "mail" in Ihrem System vorhanden ist. Das mailutils-Paket sollte dieses in Debian-basierten Systemen bereitstellen.

pdate: Es gibt Leute (und Fehlerberichte für verschiedene Linux-Distributionen), die berichten, dass sSMTP keine Passwörter mit einem 'Leerzeichen' oder '#' akzeptiert. Wenn sSMTP für Sie nicht funktioniert, kann dies der Fall sein.

72

Für Postfix :

  • Fügen Sie die IP für Ihr externes Mail-Relay zu /etc/hosts und füge ein Alias-Mailrelay hinzu.
  • Ändern Sie die Postfix-Konfiguration:

    relayhost = [mailrelay]
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
    smtp_sasl_security_options = noanonymous
    
  • Bearbeiten /etc/postfix/smtp_auth

    mailrelay login:password
    
  • In Hash-Format konvertieren

postmap /etc/postfix/smtp_auth

Es muss nicht gesagt werden, dass nur root dies lesen kann ... chmod u=r,og=-

24
Nils

mailx unterstützt das Einstellen des SMTP-Servers in der CLI ...

echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]

Es muss nichts installiert werden, vorausgesetzt, Sie können auf Ihrem SMTP-Server nicht authentifizierte E-Mails senden.

Es gibt keine Antwort, die den SMTP-Server auf all die Software-Bits setzt, die Sie möglicherweise auf Ihrer Linux-Box haben. Jeder E-Mail-Client kann einen SMTP-Server konfigurieren.

13
teknopaul

Mein Favorit ist der email ( github ) Client. Es ist wirklich einfach, keine komplexe Konfiguration erforderlich, keine Abhängigkeiten erforderlich. Und Sie können das SMTP-Server-Argument über die Befehlszeile angeben, was bedeutet, dass es besser für die Skripterstellung geeignet ist. Das einzige Schade ist, dass die meisten Linux-Distributionen dieses Tool nicht enthalten. Sie müssen es daher selbst kompilieren.

Zitate aus E-Mail-Projekt auf Github

F: Was ist "E-Mail"?

A: 'email' ist ein von mir entwickeltes Programm, das E-Mails über die Befehlszeile an Remote-SMTP-Server sendet oder 'sendmail' intern verwendet und vollständig mit GNUPG interagiert, um Ihre E-Mails zu verschlüsseln und zu signieren. Sie entscheiden sich also dafür. .. Sie können GNUPG erhalten unter: http://www.gnupg.org

Vielen Dank cygwin , dass Sie mich über diesen nützlichen E-Mail Client informiert haben.

Kompilieren und installieren

./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc

Befehlszeilenoptionen für E-Mails

$ email --help
Options information is as follows
email [options] recipient1,recipient2,...

    -h, -help module          Print this message or specify one of the below options
    -V, -verbose              Display mailing progress.
    -f, -from-addr            Senders mail address
    -n, -from-name            Senders name
    -b, -blank-mail           Allows you to send a blank email
    -e, -encrypt              Encrypt the e-mail for first recipient before sending
    -s, -subject subject      Subject of message
    -r, -smtp-server server   Specify a temporary SMTP server for sending
    -p, -smtp-port port       Specify the SMTP port to connect to
    -a, -attach file          Attach file and base64 encode
    -c, -conf-file file       Path to non-default configuration file
    -t, -check-config         Simply parse the email.conf file for errors
    -x, -timeout              Set socket timeout.
        -cc email,email,...   Copy recipients
        -bcc email,email,...  Blind Copy recipients
        -sign                 Sign the email with GPG
        -html                 Send message in HTML format ( Make your own HTML! )
        -tls                  Use TLS/SSL
    -m, -smtp-auth type       Set the SMTP AUTH type (plain or login)
    -u, -smtp-user username   Specify your username for SMTP AUTH
    -i, -smtp-pass password   Specify your password for SMTP AUTH
    -g, -gpg-pass             Specify your password for GPG
    -H, -header string        Add header (can be used multiple times)
        -high-priority        Send the email with high priority
        -no-encoding          Don't use UTF-8 encoding

Beispielnutzung

Einfache Mail mit angegebenem SMTP-Server

echo "mail body" | email -subject "unix.stackexchange.com Q36982" -from-name LiuYan刘研 -from-addr [email protected] -smtp-server smtp.domain.com -smtp-port 25 [email protected] [email protected]

HTML-Mail

echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" [email protected]

Anhänge)

echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach [email protected]
7
LiuYan 刘研

Richten Sie einen lokalen Exim-SMTP-Server ein, indem Sie den Anweisungen auf der Seite this folgen. Wählen Sie jedoch im Bildschirm first des Exim die Option "Mail von smarthost gesendet; keine lokale Mail" Aufbau. Dadurch wird auf Ihrer Box ein SMTP-Server eingerichtet, der E-Mails von den Befehlen "mail" oder "mailx" empfangen kann und alle Nachrichten zur Zustellung an den smarthost (in Ihrem Fall einen Google Mail-Server) weiterleitet.

Um ausgehende E-Mails über einen Google Mail-Server zu senden, müssen Sie TLS-Unterstützung für Exim einrichten, was nicht trivial ist. Dieses Howto gibt eine Erklärung und hier ist einen Link mit weiteren Erklärungen speziell für Google Mail. Sie sollten sich mehrere Stunden Zeit lassen, um dies zum Laufen zu bringen. Ich würde empfehlen, zunächst E-Mails von Ihrer Box an einen TLS-fähigen SMTP-Server zu senden, auf den Sie Root-Zugriff haben, damit Sie Ihre Exim-TLS-Konfiguration von beiden Seiten debuggen können, bevor Sie versuchen, über einen Google Mail-Server zu senden. Da die Kommunikation verschlüsselt ist, können Sie keine Tools wie tcpdump verwenden, um das Protokoll auf der Leitung zu analysieren.

2
Eli Rosencruft

Wenn Sie eine externe SMTP-Server-Konnektivität mit Ihrem Host haben, können Sie SMTP auf Ihrem Host konfigurieren und E-Mails senden.

Die SMTP-Konfiguration in Linux-Schritten finden Sie hier: http://kerneltalks.com/config/guide-smtp-configuration-linux/

Beispiele für E-Mail-Befehle finden Sie hier: http://kerneltalks.com/commands/examples-send-email-through-terminal/

1
Shrikant

Postfix-Konfiguration

Voraussetzung : diese 4 Pakete werden benötigt postfix mailx cyrus-sasl-plugin ca-certificates für CentOS sonst mailutils libsasl2-modules ca-certificates. Auch wenn Sie Google Mail verwenden, sind 2-Schritt-Authentifizierung und Anwendungskennwort erforderlich/bevorzugt, damit dies ordnungsgemäß funktioniert.

Beispiel mit Google Google Mail und TLS-Verschlüsselung: Bearbeiten/Anhängen der aufgelisteten Dateien wie unten beschrieben

Schritt 1 :

/etc/postfix/sasl_passwd

[smtp.gmail.com]:587 [email protected]:apppassword

Schritt 2 :

führen Sie die folgenden Schritte aus, um eine Textdatei in eine Nachschlagetabelle zu konvertieren und einen minimalen Dateischutz zu gewährleisten

postmap /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd.db
chmod 600 /etc/postfix/sasl_passwd.db

Schritt 3 :

/etc/aliases (Liste der Benutzer, die den Dienst nutzen könnten, aktualisieren Sie ihn bei Bedarf)

postmaster: root
nobody: root
hostmaster: root
webmaster: root
www: root

Schritt 4 :

führen Sie newaliases aus, um vorherige Änderungen zu übernehmen

Schritt 5 :

/etc/postfix/virtual

root [email protected]_want_it_to_receive_sent_mail.com

Schritt 6 :

übernehmen Sie frühere Änderungen durch Ausführen

postmap /etc/postfix/virtual

Schritt 7 :

/etc/postfix/main.cf Hänge es an/bearbeite es und stelle sicher, dass es kein Duplikat gibt. Setze auch den richtigen Wert auf smtp_tls_CAfile Abhängig von wo sich Ihre Datei befindet (dies wird durch das Paket ca-certificates bereitgestellt)

inet_protocols = ipv4
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
tls_append_default_CA = no
smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
mydestination =
relay_clientcerts = 
smtp_sasl_security_options =
tls_random_source = dev:/dev/urandom
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual

Schritt 8 :

starten Sie den Dienst neu

systemctl restart postfix

Schritt 9 :

testen Sie das System

echo "This is a test Email" | mail -s "Testing" root

Schritt 10 :

überprüfen Sie die Protokolle

less /var/log/mail.log

Quellen : Weitere Informationen zum Setup finden Sie in diesem Artikel aber Beachten Sie, dass das Setup anders ist

0
intika