it-swarm.com.de

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

Ich verwende Remote-SMTP über nullmailer und es erfordert, dass das Feld "Von" auf den spezifischen Namen gesetzt wird, aber cron setzt es als "[email protected]".

Wie könnte ich es in so etwas wie [email protected] ändern?

36

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 Sie können möglicherweise 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 (lässt ihn in E-Mail-Clients gut aussehen)

17

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 Satz befindet sich am Ende des Abschnitts über MAILTO 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.

37
Jon Green

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

8
user171601

Sie können den Nullmailer von der Adresse über Umgebungsvariablen oder die Befehlszeile festlegen. Die Befehlszeilenargumente sind -f und -F für Absenderadresse bzw. vollständigen Namen.

Normalerweise können Sie Umgebungsvariablen in der Crontab festlegen.

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

5 0 * * * /usr/local/bin/daily.sh
5
Lachlan Roche

Für mich ist der einfachste Weg, die Absenderadresse auf einem System zu ändern, das Erstellen eines ~/.mailrc Datei mit folgendem Inhalt:

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

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

3
Niels de Vos

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

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

Ich musste mich ändern /etc/mail/sendmail.cf und /etc/mail/sendmail.mc, weil /etc/mailname wurde nicht verwendet. Es ändert jedoch nur die from-Domäne, nicht den Benutzer.

0
Rudie

Siehe diese Frage, wenn Sie Exim verwenden:

Beispiel: Schreiben Sie den Header "From" in den Umschlag "FROM" um

Es sollte die "Von" -Adresse auf die des Cronjob-Besitzers setzen. Sie können $header_from: Durch Ihre benutzerdefinierte Adresse ersetzen, wenn Sie sie fest in etwas anderes codieren möchten.

0

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

  • erstellen Sie eine .muttrc im Home-Verzeichnis des Benutzers, der cron wie folgt 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 weiter, um E-Mails zu senden.

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

0
Chida