Wie werden E-Mails tatsächlich gesendet, wenn ich den Linux-Befehl "mail" verwende?


17

Über welches E-Mail-Konto wird eine E-Mail gesendet, wenn der mailBefehl vom Linux-Terminal wie folgt verwendet wird :

echo "Body of email" | mail -s "Subject" abc@def.com

Wenn die E-Mails nicht gesendet werden, muss der Benutzername und das Kennwort einer sendenden E-Mail-Adresse angegeben werden? Alle mailTutorials, die ich gelesen habe, geben nichts über die Absenderadresse an.

Bearbeiten: Wenn ich eine Fehlermeldung erhalte, dass das Versenden an Remotedomänen nicht unterstützt wird, bedeutet dies, dass mein ISP das Versenden von E-Mails blockiert hat? Gibt es einen Weg, dies zu umgehen? Vielen Dank.

Antworten:


12

Welches E-Mail-Konto wird zum Senden einer E-Mail verwendet, wenn der Befehl mail vom Linux-Terminal aus wie folgt verwendet wird:

In der Standardkonfiguration ist dies dasselbe Konto, mit dem Sie sich angemeldet haben. Auf Ihrem Computer ist ein Mailserverprogramm (ein MTA) installiert. normalerweise entweder Postfix oder Exim4, manchmal Sendmail oder qmail.

Die E-Mail-Adresse dieses Kontos lautet oder , bei der der FQDN erhältlich ist . Derzeit können Sie jedoch keine E-Mails für dieses Konto empfangen , da der MTA für "nur lokale E-Mails" konfiguriert ist (wie in der folgenden Fehlermeldung angegeben) und keine Nachrichten von außen akzeptiert.your-login@hostnameyour-login@fqdnhostname -f

Bearbeiten: Wenn ich eine Fehlermeldung erhalte, dass das Versenden an Remotedomänen nicht unterstützt wird, bedeutet dies, dass mein ISP das Versenden von E-Mails blockiert hat? Gibt es einen Weg, dies zu umgehen?

Nein; Diese Fehlermeldung wird von Ihrem eigenen Computer zurückgegeben. Der Mailserver ist so konfiguriert, dass nur lokale E-Mails übertragen werden - von einem Benutzer zu einem anderen (am häufigsten vom Cron- Daemon, wenn ein Cronjob fehlschlägt). Normalerweise gehen diese Nachrichten an und sind lesbar mit , , , oder ähnliche Programme. (IIRC, Thunderbird konnte auch lokale Mail-Spools importieren.)/var/mail/loginmailmuttre-alpine

Es ist nicht schwierig, den Mailserver so zu konfigurieren, dass er E-Mails an andere Sites sendet und von diesen empfängt. Abhängig vom installierten MTA und der Linux-Distribution kann sogar ein einziger Befehl ausreichen: Zum Beispiel, dpkg-reconfigure postfixwenn das System Debian mit Postfix ist.

Ich vermute jedoch, dass Sie dies auf einem PC verwenden. Daher ist es besser, stattdessen ein externes E-Mail-Konto zu verwenden, z. B. Ihre Google Mail-Adresse, falls Sie eine haben. Finden Sie heraus, welcher MTA installiert ist (unter Ubuntu / Debian dpkg -S /usr/sbin/sendmailerfahren Sie es), und suchen Sie bei " program-name relay gmail" nach einem Tutorial.

Installieren Sie alternativ einen MTA, der speziell für die Weiterleitung entwickelt wurde. msmtpund esmtpsind eine gute Wahl und einfach zu konfigurieren.


Danke für all die Hilfe. Der Pastebin-Befehl, den Sie vorgeschlagen haben, hat meine Anforderungen erfüllt. Ich werde daran arbeiten, einen Smarthost für die Weiterleitung von E-Mails einzurichten.
Benutzer001

4

Dies sind beispielsweise der Kontoname und der Hostname des sendenden Benutzers root@myserver. Es ist nicht unbedingt ein tatsächliches Postfach, das E-Mails von außen empfangen kann.


2
@ user001 Hilft das ?
Daniel Beck

2
@ user001: In solchen Fällen können Sie sich Pastebins ansehen , von denen einige über die Befehlszeile einfach zu verwenden sind. Zum Beispiel curl -Fsprunge=\<- http://sprunge.us < myfile.
Grawity

1
@ user001: Läuft der exim4Dämon? Listet sudo mailqdie Nachricht auf? Haben Sie die Protokolle des sendenden Servers ( /var/log/exim4/mainlog) und des Empfängers (falls möglich) überprüft ?
Grawity

1
@ user001: Möglicherweise blockiert Ihr ISP die Verbindung. Dies ist besonders häufig bei Heimanschlüssen der Fall - alles, was an Port 25 anliegt, wird einfach gelöscht, um die enormen Mengen an Spam zu reduzieren, die von infizierten PCs gesendet werden. (Sie können jedoch weiterhin die Weiterleitung konfigurieren , die einen anderen Port und eine andere SMTP-Authentifizierung verwendet.)
grawity

1
@ user001: Die Weiterleitung erfolgt über einen anderen Mail-Server (manchmal als "Smarthost" bezeichnet). Ihre Netzwerkadministratoren könnten dabei helfen, wenn die Akademie eine eigene Mail-Domain hat. Wenn nicht, können Sie Ihren Server so konfigurieren, dass er von Ihrem Google Mail-Konto oder einem ähnlichen Postfach aus sendet. Tutorials hier .
Grawity

4

Der Befehl mail sendet E-Mails unter dem aktuellen Konto, dh Benutzername @ Domäne. In der Regel verhindern Internetdienstanbieter jedoch, dass Benutzer ihre eigenen Mailserver betreiben (indem sie die entsprechenden Ports blockieren), um Spam zu vermeiden. Daher wird Ihre E-Mail nicht gesendet.

Das Sendeproblem kann jedoch auch mit der Konfiguration Ihres Computers zusammenhängen.

Bearbeiten: Aktivieren Sie diese Option, um E-Mails von z. B. Google Mail zu senden. Fügen Sie die folgenden Informationen in Ihre ~ / .mailrc-Datei ein, die die Basiskonfiguration für E-Mails enthält. Stellen Sie jedoch sicher, dass diese Datei nur für Sie zugänglich ist (mit chmod 600 ~ / .mailrc).

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

In diesem Fall kommt die E-Mail von "name@gmail.com".


@ user001: Wollen Sie nur Mails senden (zB aus Skripten) oder auch empfangen können?
Karolos

Nur um eine Nachricht von einem Skript aus senden zu können. Vielen Dank.
User001

2
Beachten Sie, dass diese mailrcSyntax spezifisch für ist heirloom-mailx. Einige Systeme werden möglicherweise mit GNU mailutilsoder BSD ausgeliefert mailx, die sich beide über Syntaxfehler beschweren würden. (Wenn das passiert, schlage ich vor der Installation heirloom-mailx- oder noch besser, muttoder re-alpine.)
grawity

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.