Comment puis-je envoyer un e-mail via la mailx
commande UNIX ?
Comment puis-je envoyer un e-mail via la mailx
commande UNIX ?
Réponses:
un exemple
$ echo "something" | mailx -s "subject" recipient@somewhere.com
envoyer une pièce jointe
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
et pour envoyer une pièce jointe ET écrire le corps du message
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
mail
.
uuencode
s'agit d'une technologie héritée d'un millénaire révolu qui ne produit pas ce que nous entendons aujourd'hui par «pièces jointes». Il met essentiellement un morceau de fouillis lisible par machine à la fin du texte du message. De nos jours, vous seriez mieux servi par un mailer correctement MIME. Malheureusement, il n'y a pas de mailx
remplacement universellement pris en charge par les fonctionnalités MIME, mais si c'est le cas mutt
, c'est probablement le chemin le moins résistant.
Vous voilà :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Le corps et le sujet doivent être placés entre guillemets. Supprimez les citations des adresses e-mail FROM_EMAIL
et To_EMAIL
en les remplaçant.
mailx -s "subjec_of_mail" abc@domail.com < file_name
grâce à l' mailx
utilitaire, nous pouvons envoyer un fichier de unix
à mail server
. ici dans le code ci-dessus, nous pouvons voir que le premier paramètre est -s "subject of mail"
le deuxième paramètre est mail ID
et le dernier paramètre est le nom du fichier que nous voulons attacher
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c et -b sont facultatifs.
-s: spécifiez l'objet; si l'objet contient des espaces, utilisez des guillemets.
-c: envoyer des copies carbone à la liste des utilisateurs séparés par une virgule.
-b: envoyer des copies carbone aveugles à la liste des utilisateurs séparés par une virgule.
J'espère que ma réponse clarifie votre doute.
C'est plus rapide avec la commande MUTT
echo "Body Of the Email" | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)" -c cc_mail@g.com to_mail@g.com -y
Depuis la page de manuel:
Envoi de mail
Pour envoyer un message à une ou plusieurs personnes, mailx peut être invoqué avec des arguments qui sont les noms des personnes à qui le mail sera envoyé. L'utilisateur doit alors taper son message, suivi d'un «contrôle-D» au début d'une ligne.
En d'autres termes, mailx lit le contenu à envoyer à partir de l'entrée standard et peut être redirigé comme d'habitude. Par exemple:
ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`
mail -s "$header" abc.xyz@google.com, \
cde.mno@yahoo.com, \ < open_files.log
Personnalisation de l'adresse FROM
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
et mailx
commandes incompatibles avec des options différentes.
Voici une fonction multifonctionnelle pour gérer l'envoi de courrier avec plusieurs pièces jointes:
enviaremail() {
values=$(echo "$@" | tr -d '\n')
listargs=()
listargs+=($values)
heirloom-mailx $( attachment=""
for (( a = 5; a < ${#listargs[@]}; a++ )); do
attachment=$(echo "-a ${listargs[a]} ")
echo "${attachment}"
done) -v -s "${titulo}" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://$1 \
-S from="${2}" \
-S smtp-auth-user=$3 \
-S smtp-auth-password=$4 \
-S ssl-verify=ignore \
$5 < ${cuerpo}
}
appel de fonction: enviaremail "smtp.mailserver: port" "from_address" "authuser" "'pass'" "destination" "liste des pièces jointes séparées par un espace"
Remarque: supprimez les guillemets dans l'appel
De plus, n'oubliez pas de définir en externe les $ titulo (sujet) et $ cuerpo (corps) de l'email avant d'utiliser la fonction
Si vous souhaitez envoyer plus de deux personnes ou DL:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
ici: