Comment puis-je envoyer un e-mail via la mailxcommande UNIX ?
Comment puis-je envoyer un e-mail via la mailxcommande 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.
uuencodes'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 mailxremplacement 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_EMAILet To_EMAILen les remplaçant.
mailx -s "subjec_of_mail" abc@domail.com < file_name
grâce à l' mailxutilitaire, 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 IDet 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
mailet mailxcommandes 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: