it-swarm.com.de

Versendet mailx E-Mails über ein SMTP-Relay oder stellt es eine direkte Verbindung zum Ziel-SMTP-Server her?

Angenommen, ich sende eine Mail mit dem folgenden Befehl:

mailx [email protected]

dann versucht mailx zuerst, den SMTP-Server meines Internetdienstanbieters für die Weiterleitung der E-Mails zu ermitteln, oder stellt die Verbindung direkt her. Kommt es darauf an, ob mein PC eine öffentliche IP-Adresse hat oder sich hinter einem NAT befindet. Wie überprüfe ich die Einstellungen von mailx auf meinem PC? Wie kann ich dies mit tcpdump überprüfen?

29
Rohit Banga

Traditionell verwenden Unix mailund Derivate (und viele andere Unix-Tools) die /usr/bin/sendmail-Schnittstelle, die von fast allen Mail-Transfer-Agents (MTAs - Postfix, Exim, Kurier und natürlich Sendmail) bereitgestellt wird.

Das heißt, das Programm mailspricht kein Netzwerkprotokoll - es leitet die Nachricht über stdin an sendmailweiter und lässt die tatsächliche Zustellung zu. (Dies geht auf die Zeit zurück, als einige E-Mails SMTP, andere UUCP und andere BITNET verwendeten ...)

Sobald eine Nachricht über sendmailin die Warteschlange gestellt wurde, verarbeitet der MTA die eigentliche Nachrichtenübertragung, sei es über SMTP oder etwas anderes. Je nach Konfiguration wird entweder eine direkte Verbindung zum Ziel-MTA hergestellt oder E-Mails werden über einen anderen Host (auch als Smarthost bezeichnet) weitergeleitet.

Direktverbindungen sind auf Servern häufiger. Die Weitergabe über Smarthost ist bei PCs mit Heimanschlüssen häufiger. Die Weitergabe über Ihr Google Mail- oder ISP-/geschäftliches E-Mail-Konto ist unerlässlich, um die pauschalen "dynamischen IP" -Antispamfilter zu vermeiden.

(Einige MTAs wie esmtpoder nullmailerwurden speziell für Privatanwender erstellt und verwenden immer einen Relayhost. Diese unterstützen den Empfang von E-Mails nicht und sind wesentlich ressourcenschonender.)

mailx → [/ usr/bin/sendmail] → lokale MTA-Warteschlange → [SMTP] → Empfänger-MTA → Empfänger-Posteingang
mailx → [/ usr/bin/sendmail] → lokale MTA-Warteschlange → [SMTP] → Gmail oder ISP/Arbeitsserver → [SMTP] → Empfänger-MTA → Empfängereingang

Andere Programme, meistens die benutzerfreundlichen grafischen Clients wie Thunderbird oder Outlook, stellen immer eine direkte Verbindung zu einem Relay-/Smarthost-SMTP-Server her (wiederum in der Regel Gmail- oder ISP-/Work-SMTP-Server). , der die Nachricht in Ihrem Namen übermittelt.

Die native SMTP-Unterstützung ist im heirloom-mailx vorhanden, jedoch nicht im herkömmlichen bsd-mailx.

app → [SMTP] → Google Mail oder ISP/Arbeitsserver → [SMTP] → Empfänger-MTA → Empfängereingang

Die dritte Methode - die direkte Verbindung zum Server des Empfängers - wird fast nie verwendet und wird von keinem MUA unterstützt. Wenn Sie diese Option auf PCs verwenden, wird Ihre Nachricht abgelehnt (von infizierten IP-Adressen der Privatbenutzer wird viel Spam gesendet).

app → [SMTP] → Empfänger-MTA → Vom Spamfilter abgefangen
24
grawity

mailx kann SMTP verwenden. Die Konfigurationsdatei lautet ~/.mailrc

Ein Beispiel ist mailx mit Gmail SMTP .

Die Konfiguration kann sogar in einem Befehl erfolgen:

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

Wenn ein normaler SMTP-Server verwendet wird, ist dies viel einfacher (siehe eine ausführliche Einführung hier ):

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

Sie können diese auch in die Konfigurationsdatei ~/.mailrc von mailx einfügen

31
ericzma

Aus der Manpage mailx(1), Abschnitt DESCRIPTION, Unterabschnitt String Options :

   smtp   Normally, mailx invokes sendmail(8) directly to  transfer
          messages.  If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable  is
          used  instead.

es gibt eine Alternative ohne lokales MTA wie sendmail/postix.

debian-Paket ssmtp

info von rpm beschreibung:

Summary     : Extremely simple MTA to get mail off the system to a Mailhub
URL         : http://packages.debian.org/stable/mail/ssmtp
License     : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

Stefan K.

1
StefanKaerst