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


Ich benutze Remote-SMTP via Nullmailer und es erfordert das Setzen von From Feld auf den spezifischen Namen, aber Cron setzen Sie es als root@my.sweet.server.com.

Wie könnte ich es zu etwas wie me@ya.ru ändern?


31
2018-03-10 11:14


Ursprung


Welche Cron-Implementierung (und OS)? - Kimvais
Siehe diese Frage: serverfault.com/questions/438843/ ... für eine andere Lösung. - robin


Antworten:


Ich denke 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" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"

Die gesamte Ausgabe wird an den Mail-Befehl weitergeleitet, so dass die MAILTO-Variable überhaupt nicht verwendet wird.

Die Adresse muss zwar festgelegt werden, aber Sie können möglicherweise die Variable $ MAILTO verwenden. Der - setzt den Rest der Optionen als sendmail-Optionen, so dass Sie die Optionen -r und 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)


13
2018-03-10 16:10





Moderne Versionen von cron akzeptieren "MAILFROM = ..." im Crontab-Format. Ich schlage vor, dass Sie "Mann 5 crontab" versuchen. Wenn es MAILFROM erwähnt, sollte Ihre Version es unterstützen. Der zu suchende Ausdruck ist gegen Ende des Absatzes, in dem MAILTO diskutiert wird, und sollte in etwa so aussehen:

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


31
2017-10-11 14:33



Wo bedeutet "modern" was? Dies wird von der aktuellsten 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 Archlinux für mich funktioniert. Es gibt viele verschiedene Aromen von Cron. Debians ISC stammt aus dem Jahr 2004 und dehnt die Definition von "modern" aus, aber ohne Informationen darüber, auf welchem ​​System es verwendet wird - schwer, dieses Detail zu liefern! - RuiDC
Leider hat Ubuntus Cron (zumindest ab 14.04 LTS) keine Erwähnung gefunden MAILFROM im man 5 crontab. - Arto Bendiken
Sie können installieren cronie ersetzen cron auf Debian / Ubuntu. Ta-daa: MAILFROM existiert: - Andreas Klöckner
Cronie existiert nicht auf Ubuntu 16.04 - alex k


/ etc / mailname enthält den Domänennamen der FROM-Adresse. Wenn / etc / mailname "somecompany.com" enthält, würde cron, das für root läuft, Absender als root@somecompany.com haben


6
2018-04-29 06:41



Einige Infos hier: wiki.debian.org/EtcMailName - sagt nicht, wenn nullmailer es benutzt. Ich benutze sendmail und es scheint nicht zu funktionieren. - Zitrax


Sie können den Nullmailer von der Adresse über Umgebungsvariablen oder Befehlszeile festlegen. Die Befehlszeilenargumente sind -f und -F fü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

5
2018-03-10 12:13



Er fragt nach FROM: NICHT TO: - Kimvais
Hm, das funktioniert aus unbekannten Gründen nicht. - Alexander Artemenko


Für mich ist die einfachste Möglichkeit, die Absenderadresse eines Systems zu ändern, die Erstellung eines ~/.mailrc Datei mit Inhalt wie folgt:

set name="My Full Name"
set from="myrealemail@example.com"

Irgendwelche der mail Befehle, die als mein Benutzer ausgeführt werden, verwenden jetzt diese Einstellungen.


2
2017-10-29 14:34





Beachten Sie diese Frage, wenn Sie Exim verwenden:

exim: Schreibe "From" Header in den Umschlag "FROM"

Es sollte die "From" -Adresse auf den Cronjob-Besitzer setzen. Sie können ersetzen $header_from: mit Ihrer benutzerdefinierten Adresse, wenn Sie es auf etwas anderes fest codieren möchten.


0
2017-08-12 11:39





Eine andere einfache Alternative ist die Verwendung von Köter,

  • Erstellen Sie eine .muttrc im Home-Verzeichnis des Benutzers, der Cron mit dem folgenden ausführt

    setze realname = "Joe Benutzer" setze von = "user @ host" setze use_from = yes

  • Führen Sie ein Skript mit dem Befehl mutt aus, oder leiten Sie den Befehl cron zum Abrufen der E-Mail von mutt ab.

Bevor Mutt sendet und per E-Mail sendet, wird der From-Header aus der .muttrc-Datei gesetzt.


0
2017-08-12 11:50





Ich musste mich ändern /etc/mail/sendmail.cf und /etc/mail/sendmail.mc, da /etc/mailname wurde nicht benutzt. Es ändert nur die von Domäne, nicht der Benutzer.


0
2018-01-20 13:25





Es wird von der Benutzer-Domäne gesendet - der Benutzer ist der Anmeldename, unter dem der Cron ausgeführt wird - Sie müssten also einen Benutzer "mich" erstellen und den Cron-Job als diesen Benutzer ausführen.

Um die Domäne zu ändern, gibt es verschiedene Möglichkeiten - es könnte sein, dass Sie den Eintrag der hosts-Datei ändern müssen (oder, wie auf meinem Rechner, als ich dies konfigurierte - eine ubuntu-Box) - ändern Sie / etc / mailname - die Domäne zu sein, von der sie kommen soll.


-2
2018-03-01 00:25



Das stimmt nicht wirklich - zumindest nicht in vielen Fällen. 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 (wie bei mir) von Bedeutung, wo mein MTA (aus Gründen, die zu kompliziert und langweilig sind zu beschreiben) den Domänennamen nicht hinzufügt. - Flimzy