Come modificare il campo "Da:" per le email da Cron?


Risposte:


13

Non credo che tu possa cambiare l'indirizzo FROM (qualcuno dovrebbe aggiungere un'opzione MAILFROM).

Puoi fare qualcosa del genere anche se per ottenere un risultato simile:

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"

Tutto l'output viene reindirizzato al comando mail quindi la variabile MAILTO non viene utilizzata affatto.

L'indirizzo to dovrebbe essere impostato ma potresti essere in grado di usare la variabile $ MAILTO. Il - imposta il resto delle opzioni come opzioni sendmail in modo da poter usare le opzioni -r e -F.

-s è l'argomento

-r è l'indirizzo di risposta

-F è il nome completo del mittente (lo rende gradevole nei client di posta elettronica)


serverfault.com/a/437319/30697 dovrebbe probabilmente essere la risposta accettata.
lkraav,

34

Le versioni moderne di cron accettano "MAILFROM = ..." nel formato crontab. Ti suggerisco di provare "man 5 crontab". Se menziona MAILFROM, la tua versione dovrebbe supportarlo. La frase da cercare è verso la fine del paragrafo che parla di MAILTO e dovrebbe essere qualcosa del genere:

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


6
Dove "moderno" significa cosa? Questo non è supportato dalla versione più recente di cron in Debian unstable (3.0pl1-124) da quello che posso vedere nel log delle modifiche o nella documentazione.
Flimzy,

grazie, questo ha funzionato per me su Archlinux. Esistono molti gusti diversi di cron. L'ISC di Debian è del 2004, estendendo così la definizione di "moderno", ma senza informazioni su quale sistema viene utilizzato - difficile fornire quel dettaglio!
RuiDC,

1
Sfortunatamente, il cron di Ubuntu (almeno dal 14.04 LTS) non ha menzionato MAILFROMin man 5 crontab.
Arto Bendiken,

4
È possibile installare cronieper sostituire cronsu Debian / Ubuntu. Ta-daa: MAILFROMesiste:
Andreas Klöckner,

1
cronie non esiste su Ubuntu 16.04
alex k

7

/ etc / mailname contiene il nome di dominio parte dell'indirizzo FROM. Se / etc / mailname contiene 'somecompany.com', cron in esecuzione per root avrebbe il mittente come root@somecompany.com


2
Alcune informazioni qui: wiki.debian.org/EtcMailName - non dice se nullmailer lo usa. Uso sendmail e non sembra funzionare per questo.
Zitrax,

5

È possibile impostare nullmailer dall'indirizzo tramite variabili di ambiente o riga di comando. Gli argomenti della riga di comando sono -fe -Fper l'indirizzo del mittente e il nome completo, rispettivamente.

Di solito è possibile impostare variabili d'ambiente nel crontab.

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

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

Sta chiedendo di FROM: not TO:
Kimvais

Hm, questo non funziona per motivi sconosciuti.
Alexander Artemenko,

3

Per me, il modo più semplice per cambiare l'indirizzo mittente su un sistema è creare un ~/.mailrcfile con contenuti come questo:

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

Tutti i mailcomandi eseguiti come mio utente ora utilizzano queste impostazioni.



0

Un'altra alternativa semplice è usare mutt,

  • crea un .muttrc nella home directory dell'utente che esegue cron con quanto segue

    set realname = "Joe User" impostato da = "user @ host" impostato use_from = yes

  • Esegui uno script con il comando mutt al suo interno o esegui il pipe del comando cron da cui mutt invii e-mail.

Prima che mutt invii e invii un'e-mail, imposterà l'intestazione From dal file .muttrc.


0

Ho dovuto cambiare /etc/mail/sendmail.cfe /etc/mail/sendmail.mc, perché /etc/mailnamenon è stato utilizzato. Tuttavia, cambia solo dal dominio, non l'utente.


0

Ecco alcune cose che puoi applicare per cambiare il tuo dominio mittente:

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

-2

viene inviato dall'utente @ dominio - l'utente è il nome di accesso in cui è in esecuzione cron - quindi dovresti creare un utente "me" - ed eseguire il processo cron come quell'utente.

Quindi per cambiare il dominio, ci sono diverse possibilità: potrebbe essere necessario cambiare la voce del file hosts (o, come sulla mia macchina, quando stavo configurando questo - una casella di Ubuntu) - cambia / etc / mailname - essere il dominio da cui vuoi che provenga.


1
Questo non è in realtà vero - almeno non in molti casi. Sul mio sistema, ad esempio, viene inviato solo da "utente", non da "utente @ dominio". È responsabilità dell'MTA aggiungere il nome di dominio locale. Ciò è significativo in alcuni casi (come il mio) in cui il mio MTA (per motivi troppo complicati e noiosi da descrivere) non aggiunge il nome di dominio.
Flimzy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.