Uso SMTP remoto tramite nullmailer e richiede l'impostazione Da campo al nome specifico, ma cron lo imposta come root@my.sweet.server.com.
Come potrei cambiarlo in qualcosa come me@ya.ru?
Uso SMTP remoto tramite nullmailer e richiede l'impostazione Da campo al nome specifico, ma cron lo imposta come root@my.sweet.server.com.
Come potrei cambiarlo in qualcosa come me@ya.ru?
Risposte:
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)
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.
MAILFROM
in man 5 crontab
.
cronie
per sostituire cron
su Debian / Ubuntu. Ta-daa: MAILFROM
esiste:
/ 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
È possibile impostare nullmailer dall'indirizzo tramite variabili di ambiente o riga di comando. Gli argomenti della riga di comando sono -f
e -F
per 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
Per me, il modo più semplice per cambiare l'indirizzo mittente su un sistema è creare un ~/.mailrc
file con contenuti come questo:
set name="My Full Name"
set from="myrealemail@example.com"
Tutti i mail
comandi eseguiti come mio utente ora utilizzano queste impostazioni.
Vedi questa domanda se usi Exim:
exim: riscrivi l'intestazione "Da" in busta "DA"
Dovrebbe impostare l'indirizzo "Da" al proprietario del cronjob. Puoi sostituirlo $header_from:
con il tuo indirizzo personalizzato se desideri codificarlo a qualcos'altro.
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.
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.