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 user@gmail.com [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.


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 user@gmail.com

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.


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 user@domain.com

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.


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
user@domain.com

13

Vous pouvez également utiliser sendmail:

/usr/sbin/sendmail user@domain.com < /file/to/send

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" username@domain.com

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



-3

Envoi de courrier simple:

$ mail -s "test message from centos" recipient@example.com
hello from centos linux command line

Ctrl+ Dpour finir


2
il demande dans la commande en ligne.
Rohit Gupta
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.