Nouveau sur unix et apprendre la conversation et la marche. J'écris un script en .ksh et j'ai besoin d'envoyer un mail avec un message. J'utilise actuellement cette commande dans mon script:
mailx -s"File not found" [email protected]
Cette commande m'aide à avoir un sujet et le nom du destinataire. Ma question est de savoir comment puis-je écrire un message avec lui. Parce que chaque fois que j'exécute le script, il s'interrompt et me demande d'entrer le message puis de l'exécuter, je veux pré-inclure le message afin que le script ne s'arrête pas entre les deux.
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]
Essayez ceci sur la ligne de commande ou dans un script:
echo "This is the message." | mailx -s "Subject" [email protected]
Vous pouvez utiliser des messages prédéfinis à partir de fichiers:
cat message.txt | mailx -s "Subject" [email protected]
Alternativement à mailx (mentionné dans les autres réponses), vous pouvez également utiliser sendmail:
cat <<EOF | sendmail -t
To: recipients-mailaddress
From: your-mailaddress
Subject: the-subject
mailtext
blabla
.
EOF
Vous devrez peut-être ajouter le chemin d'accès complet à sendmail s'il ne se trouve pas sur votre chemin. Par exemple./usr/sbin/sendmail ou/usr/lib/sendmail.
Mise à jour :
Voir aussi ceci question
comme mailx prend le corps en entrée sur stdin, vous pouvez lui rediriger le corps:
echo "Hello World" | mailx -s"File not found" [email protected]
Ou utilisez un ici document
mailx -s"File not found" [email protected] << END_TEXT
Hello World
END_TEXT
Si vous souhaitez également ajouter une pièce jointe à la que vous souhaitez envoyer. Voici:
echo 'Type Message body' | mailx -s 'Type subject' -a path/filename.txt [email protected]
EXEMPLE:
echo 'PFA report' | mailx -s 'Today's Report' -a `path`/report1306.txt [email protected]
Définissez au préalable le contenu du courrier et procédez comme suit:
mailx -s"File not found" [email protected] < mailcontent