J'utilise SMTP à distance via nullmailer et il faut définir le champ De au nom spécifique, mais cron le définir comme [email protected].
Comment pourrais-je le changer en quelque chose comme [email protected]?
Je ne pense pas que vous puissiez changer l'adresse FROM (quelqu'un devrait ajouter une option MAILFROM).
Vous pouvez cependant faire quelque chose comme ça pour obtenir un résultat similaire:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"
Toutes les sorties sont dirigées vers la commande mail afin que la variable MAILTO ne soit pas utilisée du tout.
L'adresse à doit être définie, mais vous pourrez peut-être utiliser la variable $ MAILTO. Le - définit le reste des options comme options sendmail afin que vous puissiez utiliser les options -r et -F.
-s est le sujet
-r est l'adresse de réponse
-F est le nom complet de l'expéditeur (donne une belle apparence aux clients de messagerie)
Les versions modernes de cron acceptent "MAILFROM = ..." au format crontab. Je vous suggère d'essayer "man 5 crontab". S'il mentionne MAILFROM, votre version devrait le prendre en charge. La phrase à rechercher se situe vers la fin du paragraphe traitant de MAILTO, et devrait ressembler à ceci:
If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.
/ etc/mailname contient la partie nom de domaine de l'adresse FROM. Si/etc/mailname contient 'somecompany.com', alors cron en cours d'exécution pour root aura l'expéditeur en tant que [email protected]
Vous pouvez définir le nullmailer à partir de l'adresse via des variables d'environnement ou la ligne de commande. Les arguments de la ligne de commande sont -f
et -F
pour l'adresse de l'expéditeur et le nom complet respectivement.
Habituellement, vous pouvez définir des variables d'environnement dans la crontab.
NULLMAILER_USER=webmaster
NULLMAILER_Host=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
Pour moi, la façon la plus simple de changer l'adresse d'expéditeur d'un système est de créer un ~/.mailrc
fichier avec un contenu comme celui-ci:
set name="My Full Name"
set from="[email protected]"
Toutes les commandes mail
qui s'exécutent en tant qu'utilisateur, utilisent maintenant ces paramètres.
Voici quelques éléments que vous pouvez appliquer pour modifier votre domaine d'expéditeur:
Edit this file: /etc/mailname and change to:
example.org
Sudo postconf -e 'myhostname= example.org'
Sudo systemctl restart postfix
Je devais changer /etc/mail/sendmail.cf
et /etc/mail/sendmail.mc
, parce que /etc/mailname
n'a pas été utilisé. Cependant, cela ne change que le domaine from, pas l'utilisateur.
Consultez cette question si vous utilisez Exim:
exim: réécriture de l'en-tête "From" dans l'enveloppe "FROM"
Il doit définir l'adresse "De" à celle du propriétaire de la tâche cron. Vous pouvez remplacer $header_from:
avec votre adresse personnalisée si vous souhaitez la coder en dur avec autre chose.
Une autre alternative simple consiste à utiliser mutt,
créer un .muttrc dans le répertoire personnel de l'utilisateur qui exécute cron avec ce qui suit
set realname = "Joe User" set from = "user @ Host" set use_from = yes
Exécutez un script contenant la commande mutt ou dirigez la commande cron vers mutt pour envoyer un e-mail.
Avant que mutt envoie et envoie un e-mail, il définira l'en-tête From du fichier .muttrc.