
Ich habe meinen Debian-Server so konfiguriert, dass er msmtp
zum Senden von E-Mails verwendet wird. Der aktuelle Anwendungsfall ist beispielsweise das Senden eines täglichen Berichts an logwatch
die E-Mail-Adresse meines ISPs.
echo "$body" | mutt -s "$topic" -- "[email protected]"
Die Konfiguration habe ich msmtp
mithilfe einer globalen msmtprc
Datei durchgeführt, die sich unter befindet /etc/msmtprc
. Der Inhalt wird unten angezeigt.
Als nächstes möchte ich konfigurieren, dass meine E-Mail für mein Root-Konto (z. B. Ausgabe von Crontabs) auch an meine ISP-E-Mail gesendet wird.
Ich habe herumgegoogelt und beispielsweise im Arch-Wiki herausgefunden, dass ich einfach meine Aliase konfigurieren muss. Das habe ich am Ende der msmtp-Konfigurationsdatei getan.
Nach dem Ausführen von newaliases
und dem Versuch, es auszuführen,
echo test | mail -s "test message" root
Ich erhalte den Fehler
send-mail: /etc/aliases: line 2: invalid address 'postmaster'
Can't send mail: sendmail process failed with error code 78
Ich bin mir nicht sicher, wie ich das beheben kann. Der unten angezeigte Alias war bereits vorhanden. Ich habe nur die Gmail-Adresse hinzugefügt.
Ich denke, ich könnte einfach eine neue Aliasdatei einfügen, aber das könnte andere Dienste beschädigen, die darauf angewiesen sind. Ich weiß also nicht, wie ich das richtig beheben kann.
/etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: christphe, [email protected]
/etc/msmtprc
# ------------------------------------------------------------------------------
# msmtp System Wide Configuration file
# ------------------------------------------------------------------------------
# A system wide configuration is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.
# ------------------------------------------------------------------------------
# Accounts
# ------------------------------------------------------------------------------
account isp
host mail.isp.net
port 587
from [email protected]
auth login
user [email protected]
password foobar
syslog LOG_MAIL
logfile /var/log/msmtp.log
# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------
# Construct envelope-from addresses of the form "[email protected]".
#auto_from on
#maildomain fermmy.server
# Use TLS.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
# Must be done within "account" sub-section above
#syslog LOG_MAIL
# Set a default account
account default : isp
aliases /etc/aliases
# ------------------------------------------------------------------------------#
Antwort1
Aktualisierung 2019-10-17
msmtp Version 1.8.6 (veröffentlicht am 27.09.2019) bietet jetzt native Unterstützung für verkettete/rekursive Aliaserweiterung in /etc/aliases
. Siehehttps://marlam.de/msmtp/news/msmtp-1-8-6/.
Ursprüngliche Antwort
Ich hatte also genau das gleiche Problem, als ich von SSMT auf MSMT migrierte. Das Problem wird verursacht durchis_address()
Funktion in aliases.c. Wenn das Ziel des Alias kein enthält '@'
, denkt msmtp grundsätzlich, dass es ungültig ist und bricht ab. Sie können dies umgehen, indem Sie einfach @ an alle Aliase anhängen, die zu root umleiten.
In Ihrem Beispiel würden Sie /etc/aliases
wie folgt ändern:
# /etc/aliases
mailer-daemon: postmaster@
postmaster: root@
nobody: root@
hostmaster: root@
usenet: root@
news: root@
webmaster: root@
www: root@
ftp: root@
abuse: root@
noc: root@
security: root@
root: christphe@, [email protected]
Ich habe vor, einen Fehler/ein Problem mit msmtp zu protokollieren, damit dieses Verhalten geändert wird, sodass es einfach funktioniert, und werde diese Antwort dann aktualisieren.
Antwort2
msmtp
Habe heute beim ersten Versuch zwei Dinge hierzu gefunden .
/etc/aliases
Standard derpostmaster: root
Dinge Sodbrennen. Nur offenbart durchmsmtp -v
- gelöst durch Änderung der Zeile in
postmaster: [email protected]
- gelöst durch Änderung der Zeile in
setzen
aliases /etc/aliases
in/etc/msmtprc
oder~/.msmtprc
Antwort3
Als nächstes möchte ich konfigurieren, dass meine E-Mail für mein Root-Konto (z. B. Ausgabe von Crontabs) auch an meine ISP-E-Mail gesendet wird.
- Fügen Sie eine Zeile wie diese hinzu
/etc/msmtprc
:
aliases /etc/aliases.msmtp
- Erstellen Sie die Datei
/etc/aliases.msmtp
, die diese Zeile enthält:
default: [email protected]
Antwort4
msmtp und AppArmor funktionieren nicht gut zusammen. AppArmor war mit dem Lesen von msmtpd einverstanden, /etc/aliases
sträubte sich aber beim Lesen von /etc/aliases.msmtp
.
Ich habe das Problem gefunden, indem ich die -v
MSMTP-Option verwendet und eine Testmail gesendet habe.
Ich empfehle, dabei zu bleiben /etc/aliases
.