Comment définir L'adresse e-mail de la commande mailx?
Je travaille sur un script KornShell (ksh) exécuté sur un serveur Solaris qui enverra un e-mail lorsque la condition d'erreur est remplie. Je suis de l'envoi de l'email par l'intermédiaire de mailx.
Question: Comment définir l'adresse e-mail" From " sur la commande mailx?
Code Actuel:
echo ${msg_txt} | mailx -s "Script Failure" ${to_email}
Note: la commande fonctionne bien, cependant, le" From " est le nom de l'utilisateur que j'exécute le script et je voudrais pour cela à une autre adresse e-mail.
Comment le ferais-je accomplir cela?
7 réponses
Vous pouvez utiliser l'option "-r" option pour définir l'adresse de l'expéditeur:
mailx -r me@example.com -s ...
L'option" - r " n'est pas valide sur mes systèmes. J'ai dû utiliser une syntaxe différente pour le champ "De".
-a "From: Foo Bar <foo.bar@someplace.com>"
Si vous souhaitez également inclure votre vrai nom dans le champ from, vous pouvez utiliser le format suivant
mailx -r "me@example.com (My Name)" -s "My Subject" ...
Si vous avez des caractères non-ASCII dans votre nom, comme mon AEÆoeøaaå (Æ = C3 86, ø = C3 B8, å = C3 A5), vous devez les encoder comme ceci:
mailx -r "me@example.com (My =?utf-8?Q?AE=C3=86oe=C3=B8aa=C3=A5?=)" -s "My Subject" ...
J'espère que cela peut sauver quelqu'un une heure de travail acharné/recherche!
Sur debian où bsd-mailx
est installé par défaut, l'option -r
ne fonctionne pas. Cependant, vous pouvez utiliser mailx -s subject recipient@abc.com -- -f sender@abc.com
à la place. Selon la page de manuel, vous pouvez spécifier les options sendmail après --
.
Le paquet nail
fournit une interface améliorée de type mailx. Il inclut l'option -r
.
Sur Centos 5 l'installation du paquet mailx
Vous donne un programme appelé mail
, qui ne prend pas en charge les options mailx
.
Sur macOS Sierra, création de ~/.mailrc avec la configuration smtp a fait l'affaire:
set smtp-use-starttls
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=youremail@gmail.com
set smtp-auth-password=yourpass
Puis pour envoyer un courrier de CLI:
echo "your message" | mail -s "your subject" to_email@gmail.com
Sur Ubuntu Bionic 18.04, cela fonctionne comme vous le souhaitez:
$ echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx --append='FROM:Foghorn Leghorn <fleghorn@yourisp.com>' -s "test cli email $(date)" -- recipient@acme.com