Wie ändere ich das Feld "Von:" für E-Mails von Cron?

Antworten:

13

Ich glaube nicht, dass Sie die FROM-Adresse ändern können (jemand sollte eine MAILFROM-Option hinzufügen).

Sie können jedoch so etwas tun, um ein ähnliches Ergebnis zu erzielen:

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"

Die gesamte Ausgabe wird an den Befehl mail weitergeleitet, sodass die Variable MAILTO überhaupt nicht verwendet wird.

Die to-Adresse müsste festgelegt werden, aber möglicherweise können Sie die Variable $ MAILTO verwenden. Mit - werden die restlichen Optionen als sendmail-Optionen festgelegt, sodass Sie die Optionen -r und -F verwenden können.

-s ist das Thema

-r ist die Antwortadresse

-F ist der vollständige Name des Absenders (sieht in E-Mail-Clients gut aus)

Richard Holloway
quelle
serverfault.com/a/437319/30697 sollte wahrscheinlich die akzeptierte Antwort sein.
lkraav
34

Moderne Versionen von cron akzeptieren "MAILFROM = ..." im crontab-Format. Ich schlage vor, dass Sie "Mann 5 Crontab" versuchen. Wenn MAILFROM erwähnt wird, sollte Ihre Version dies unterstützen. Der zu suchende Ausdruck befindet sich gegen Ende des Abschnitts, in dem MAILTO behandelt wird, und sollte ungefähr so ​​lauten:

If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.

Jon Green
quelle
6
Wo bedeutet "modern" was? Dies wird von der neuesten Version von cron in Debian Unstable (3.0pl1-124) nicht unterstützt, was ich im Changelog oder in der Dokumentation sehen kann.
Flimzy
thx, das hat bei mir auf Archlinux geklappt. Es gibt viele verschiedene Arten von Cron. Debians ISC stammt aus dem Jahr 2004, was die Definition von "modern" erweitert, aber ohne Informationen darüber, auf welchem ​​System es verwendet wird - es ist schwierig, diese Details bereitzustellen!
RuiDC
1
Leider hat Ubuntus Cron (mindestens ab 14.04 LTS) keine Erwähnung von MAILFROMin man 5 crontab.
Arto Bendiken
4
Sie können installieren cronie, um cronauf Debian / Ubuntu zu ersetzen . Ta-daa: MAILFROMexistiert:
Andreas Klöckner
1
cronie existiert nicht auf Ubuntu 16.04
alex k
7

/ etc / mailname enthält den Domainnamen als Teil der FROM-Adresse. Wenn / etc / mailname 'somecompany.com' enthält, hat cron, das für root ausgeführt wird, den Absender [email protected]

user171601
quelle
2
Einige Infos hier: wiki.debian.org/EtcMailName - sagt nicht, ob nullmailer es benutzt. Ich benutze sendmail und es schien nicht zu funktionieren.
Zitrax
5

Sie können den Nullmailer von der Adresse über Umgebungsvariablen oder die Befehlszeile einstellen. Die Befehlszeilenargumente lauten -fund -Ffür die Absenderadresse bzw. den vollständigen Namen.

Normalerweise können Sie Umgebungsvariablen in der crontab setzen.

NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"

5 0 * * * /usr/local/bin/daily.sh
Lachlan Roche
quelle
Er fragt nach FROM: not TO:
Kimvais
Hm, das funktioniert aus unbekannten Gründen nicht.
Alexander Artemenko
3

Für mich ist der einfachste Weg, die Absenderadresse auf einem System zu ändern, eine ~/.mailrcDatei mit folgendem Inhalt zu erstellen :

set name="My Full Name"
set from="[email protected]"

Alle mailBefehle, die als mein Benutzer ausgeführt werden, verwenden jetzt diese Einstellungen.

Niels de Vos
quelle
0

Siehe diese Frage bei Verwendung von Exim:

exim: "From" -Header in Umschlag "FROM" umschreiben

Es sollte die "Von" -Adresse auf die des Cronjob-Besitzers setzen. Sie können $header_from:Ihre benutzerdefinierte Adresse durch eine andere ersetzen, wenn Sie sie in eine andere Form bringen möchten.

Vladimir Panteleev
quelle
0

Eine andere einfache Alternative ist, Köter zu verwenden,

  • Erstellen Sie eine .muttrc-Datei im Home-Verzeichnis des Benutzers, der cron ausführt

    set realname = "Joe User" set from = "user @ host" set use_from = yes

  • Führen Sie ein Skript mit dem Befehl mutt aus, oder leiten Sie den Befehl cron an mutt from weiter, um eine E-Mail zu senden.

Bevor mutt sendet und eine E-Mail versendet, wird der From-Header aus der .muttrc-Datei gesetzt.

Chida
quelle
0

Ich musste mich umziehen /etc/mail/sendmail.cfund /etc/mail/sendmail.mc, weil /etc/mailnamenicht benutzt. Es wird jedoch nur die From-Domain geändert, nicht der Benutzer.

Rudie
quelle
0

Hier sind einige Dinge, die Sie anwenden können, um Ihre Absender-Domain zu ändern:

Edit this file: /etc/mailname and change to:
    example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix
Tarik
quelle
-2

es wird von der user @ domain gesendet - der user ist der login name, unter dem der cron läuft - also müsst ihr einen user 'me' erstellen - und den cron job als dieser user ausführen.

Um die Domain zu ändern, gibt es verschiedene Möglichkeiten - es kann sein, dass Sie den Hosts-Dateieintrag ändern müssen (oder, wie auf meinem Computer, als ich dies konfiguriert habe - eine Ubuntu-Box) -, ändern Sie / etc / mailname - um die Domain zu sein, von der sie kommen soll.

Kem Mason
quelle
1
Das stimmt eigentlich nicht - zumindest in vielen Fällen nicht. Auf meinem System wird es beispielsweise nur von 'Benutzer' gesendet, nicht von 'Benutzer @ Domäne'. Es liegt in der Verantwortung des MTA, den lokalen Domänennamen hinzuzufügen. Dies ist in einigen Fällen (z. B. in meinen Fällen) von Bedeutung, in denen mein MTA (aus Gründen, die zu kompliziert und langweilig sind, um sie zu beschreiben) den Domain-Namen nicht hinzufügt.
Flimzy