Comment puis-je envoyer un email avec la commande mail mail UNIX
un exemple
$ echo "something" | mailx -s "subject" [email protected]
envoyer une pièce jointe
$ uuencode file file | mailx -s "subject" [email protected]
et pour envoyer une pièce jointe ET écrire le corps du message
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" [email protected]
Vous voilà :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS. Le corps et le sujet doivent rester entre guillemets . Supprimer les guillemets de FROM_EMAIL
et To_EMAIL
en remplaçant les adresses électroniques.
mailx -s "subjec_of_mail" [email protected] < file_name
via l'utilitaire mailx
, nous pouvons envoyer un fichier de unix
à mail server
. ici, dans le code ci-dessus, nous pouvons voir 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 souhaitons associer.
C'est plus rapide avec la commande MUTT
echo "Body Of the Email" | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)" -c [email protected] [email protected] -y
De la page de manuel:
Envoi de mail
Pour envoyer un message à une ou plusieurs personnes, mailx peut être appelé avec arguments qui sont les noms de les personnes à qui le courrier sera envoyé. L'utilisateur doit ensuite saisir son message, suivi par un "contrôle-D" au début d’une ligne.
En d'autres termes, mailx lit le contenu à envoyer à partir d'une entrée standard et peut être redirigé comme d'habitude. Par exemple.:
ls -l $HOME | mailx -s "The content of my home directory" [email protected]
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c et -b sont optionnels.
-s: spécifiez le sujet, si le sujet contient des espaces, utilisez des guillemets.
-c: envoie des copies carbone à la liste des utilisateurs séparés par une virgule.
-b: envoie des copies carbone aveugles à la liste des utilisateurs séparés par une virgule.
J'espère que ma réponse clarifie votre doute.
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`
mail -s "$header" [email protected], \
[email protected], \ < open_files.log
Personnalisation de l'adresse FROM
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="[email protected]"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
Si vous souhaitez envoyer plus de deux personnes ou DL]:
echo "Message Body" | mailx -s "Message Title" -r [email protected] [email protected],[email protected]
ici:
Voici une fonction multifonctionnelle permettant d’envoyer du 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" "adresse_du_adresse" "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 le $ titulo (sujet) et le $ cuerpo (corps) de l'email avant d'utiliser la fonction