web-dev-qa-db-fra.com

envoyer des mails depuis un terminal linux en une seule ligne

Je sais qu'il existe la commande mail sous Linux pour envoyer des courriels via la ligne de commande. Comment puis-je envoyer un simple email avec une ligne du terminal?

Par exemple:

mail [email protected] [subject] [body]

Et le courrier électronique a-t-il été envoyé sans aucune confirmation ni invite à l'utilisateur?

La raison en est que je souhaite envoyer un bref message par courrier électronique à moi-même lorsqu'un événement spécifique se produit dans un programme Java. L'idée est que je vais utiliser Runtime.getRuntime()… etc. pour envoyer le mail command à partir de mon programme Java.

J'ai utilisé cron pour faire quelque chose de similaire dans le passé, mais l'implémentation actuelle n'utilise pas cron, je dois donc l'essayer à la place.

140
cHam

mail peut représenter plusieurs programmes sur un système Linux. Ce que vous voulez derrière, c'est soit sendmail ou postfixe . Je recommande ce dernier.

Vous pouvez l'installer via votre gestionnaire de paquets préféré. Ensuite, vous devez le configurer, et une fois que vous avez fait cela, vous pouvez envoyer un email comme ceci:

 echo "My message" | mail -s subject [email protected]

Voir le manuel pour plus d'informations.

En ce qui concerne la configuration de postfix, il existe de nombreux articles sur Internet sur la façon de le faire. Sauf si vous êtes sur un serveur public avec un domaine enregistré, vous souhaitez généralement transférer le courrier électronique sur un serveur SMTP à partir duquel vous pouvez envoyer un courrier électronique.

Pour gmail, par exemple, suivez http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ ou tout autre didacticiel similaire.

196
PSkocik

Vous pouvez utiliser un écho avec un tuyau pour éviter les invites ou les confirmations.

echo "This is the body" | mail -s "This is the subject" [email protected]
35
richardson
echo "Subject: test" | /usr/sbin/sendmail [email protected]

Cela vous permet de le faire dans une ligne de commande sans avoir à faire écho à un fichier texte. Cette réponse s'appuie sur la réponse de @ mti2935. Donc, le crédit y va.

28
Hengjie

Pour les utilisateurs Ubuntu: Vous devez d’abord installer mailutils

Sudo apt-get install mailutils

Configurez un serveur de messagerie si vous utilisez gmail ou smtp. suivez ce lien . puis utilisez cette commande pour envoyer un email.

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

Si vous utilisez gmail et que vous rencontrez toujours une erreur d'authentification, vous devez modifier les paramètres de gmail:

Activer l'accès pour les applications moins sécurisées à partir d'ici

12
Rohit Gupta

Vous pouvez également utiliser sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send
12
mti2935

Vous pouvez installer le paquet mail dans Ubuntu avec la commande ci-dessous.

Pour Ubuntu -:

$ Sudo apt-get install -y mailutils

Pour les centos:

$ Sudo yum install -y mailx

Test Mail commande-:

$ echo "Mail test" | mail -s "Subject" [email protected]
5