web-dev-qa-db-fra.com

comment envoyer un mail avec un message en script unix

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.

6
Rahul sawant
echo 'Message body goes here' | mail -s 'subject line goes here' [email protected]
8
user2839978

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]
5
Christian Aigner

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

3
pitseeker

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
2
nos

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]
0
mahi_0707

Définissez au préalable le contenu du courrier et procédez comme suit:

mailx -s"File not found" [email protected] < mailcontent
0
Christine T.