J'ai un script bash qui envoie un email via la ligne de commande mutt. Ce script bash est appelé à partir d'un travail cron (configuration à l'aide de crontab -e en raison des autorisations nécessaires pour exécuter tous les éléments du script). J'ai défini l'adresse d'origine pour que les utilisateurs puissent répondre (ce qui fonctionne bien), mais le nom affiché est "root". Cela cause une certaine confusion. Existe-t-il un moyen de définir le nom associé à l'adresse e-mail?
La partie email du script est ci-dessous:
[email protected]
export EMAIL
mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt
Merci
Kevin
Le moyen le plus simple de vous assurer que l'e-mail envoyé avec le nom correct est d'exécuter le travail cron sur le compte dont vous avez besoin pour l'envoi:
me@domain:~$ crontab -e
Si vous voulez que l'utilisateur root envoie les messages via mutt, essayez ce liner (ça a marché pour moi):
export EMAIL="Me <[email protected]>" && mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt
J'espère que cela t'aides.
Utilisez /etc/crontab
au lieu de cron
, car vous pouvez l'utiliser pour inclure un nom d'utilisateur utilisé pour lancer la commande à démarrer.
Exemple:
more /etc/crontab
montre
#/etc/crontab: crontab à l’échelle du système # Contrairement à toute autre crontab, il n’est pas nécessaire d’exécuter la commande `crontab ' # pour installer la nouvelle version éditez ce fichier # et les fichiers dans /etc/cron.d. Ces fichiers ont également des champs de nom d’utilisateur, #, Ce qu’aucun des autres crontabs ne possède. Shell =/bin/sh PATH =/usr/local/sbin :/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin . # mh commande utilisateur mon dow 17 * * * * racine cd/&& run-parts --report /etc/cron.hourly 25 6 * * * test de la racine -x/usr/sbin/anacron || (cd/&& run-parts --repor t /etc/cron.daily) 47 6 * * 7 test de racine -x/usr/sbin/anacron || (cd/&& run-parts --repor t /etc/cron.weekly) 52 6 1 * * test de la racine -x/usr/sbin/anacron || (cd/&& run-parts --repor t /etc/cron.monthly) #
Incluez votre ligne de cron dans ce fichier et ajoutez le nom d'utilisateur entre dow (jour de la semaine) et commande. Le script sera alors lancé en tant qu'utilisateur.
C’est un peu mieux que de le faire dans une crontab d’utilisateur car vous pouvez inclure la même ligne ici pour chaque utilisateur dont vous avez besoin et ne pas avoir besoin de gérer plusieurs crontabs.
Si vous avez besoin de root pour accéder à certains fichiers, vous devez en modifier les autorisations ou créer un groupe incluant cette commande et vos utilisateurs.