envoyer du courrier depuis le terminal Linux en une seule ligne [fermé]

148

Je sais qu'il existe une commande mailsous Linux pour envoyer des e-mails via la ligne de commande. Comment puis-je envoyer un simple e-mail avec une ligne depuis le terminal?

Par exemple:

mail [email protected] [subject] [body]

Et l'e-mail a-t-il été envoyé sans confirmation ni invite à l'utilisateur?

La raison en est que je souhaite m'envoyer un bref message par e-mail lorsqu'un événement spécifique se produit dans un javaprogramme. L'idée est que j'utiliserai Runtime.getRuntime()… etc. pour envoyer le mail commanddepuis mon javaprogramme.

J'avais l'habitude cronde faire quelque chose de similaire dans le passé, mais l'implémentation actuelle ne l'utilise pas cron, donc je dois essayer cela à la place.

cHam
la source
L' utilisation bulk mail CLI, un outil efficace et puissant pour envoyer des e - mails dynamiques à une liste de diffusion par une seule commande facile: bulkmail mail! Faites du marketing par e-mail rapide, mini et sans tracas avec ce petit mais puissant outil 💌 bulkmail.now.sh
Kumar Abhirup

Réponses:

209

mail peut représenter plusieurs programmes sur un système Linux. Ce que vous voulez derrière, c'est sendmail ou postfix . 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 e-mail comme ceci:

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

Consultez 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 l'e-mail vers un serveur SMTP à partir duquel vous pouvez envoyer des e-mails.

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

PSkocik
la source
4
Postfix est puissant mais si vous n'avez besoin que d'envoyer des e-mails, essayez "ssmtp". Ce paquet est plus petit et n'exécute pas un démon comme postfix. Il prend en charge les protocoles sécurisés et fonctionne avec gmail.
oᴉɹǝɥɔ
6
"Le programme 'mail' n'est actuellement pas installé. Vous pouvez l'installer en tapant: apt-get install mailutils"
Tom
plus léger: forfaits nullmailerplus bsd-mailx. Suffisant pour la plupart des postes de travail :) Et comme nullmailerinclut une sendmailinterface, vous pourriez même sauter le bsd-mailxpaquet et utiliser l'approche de Hengjie .
Izzy
@ oᴉɹǝɥɔ ssmtpest obsolète. Utilisez msmtpplutôt.
Matt M.
32
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. Le crédit y va donc.

Hengjie
la source
2
Juste pour ajouter à la réponse pour le sujet et le corps: echo -e "Sujet: test \ n \ n Contenu du corps ici \ n" | sendmail
[email protected]
13

Vous pouvez également utiliser sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send
mti2935
la source
Remarque: j'ai Postfix + S-Nail. C'est ce qui a fonctionné pour moi. J'ai d'abord utilisé la réponse "Rohit Gupta" et téléchargé les utilitaires de messagerie, puis j'ai fait le vôtre et tout a fonctionné.
Mohammed Baashar
13

Pour les utilisateurs d'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 e-mail.

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

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

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

Rohit Gupta
la source
-3

Envoi de courrier simple:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl+ Dpour finir

Abhilash
la source
2
il demande dans la commande en ligne.
Rohit Gupta