180 votes

Comment envoyer un e-mail depuis le terminal?

Je sais qu'il existe des façons d'envoyer des e-mails depuis le terminal sur Linux/MacOS, mais je n'arrive pas à trouver la documentation adéquate sur la manière de le faire.

En gros, j'en ai besoin pour mon script bash qui me notifie à chaque fois qu'il y a un changement dans un fichier.

3 votes

Il convient probablement de noter ici que certains hébergeurs et fournisseurs d'accès à Internet "désactivent" la possibilité de vous envoyer des e-mails. Je présume que c'est une tentative d'empêcher les gens de spammer et de phishing à travers eux.

0 votes

@JimJeffries Lesquels ? J'utilise un serveur web Amazon EC2.

141voto

James Points 5907
echo "c'est le corps" | mail -s "c'est le sujet" "to@address"

22 votes

Notez que toutes ces solutions supposent que vous avez un MTA installé localement.

12 votes

@Miquel bon point. Sous Ubuntu, vous pouvez obtenir les prérequis via sudo apt-get install mailutils.

3 votes

@James, Ça ne fonctionne pas pour mon MAC((( Pourriez-vous m'aider?

133voto

gadgetmo Points 924

Allez dans Terminal et tapez man mail pour obtenir de l'aide.

Vous devrez configurer SMTP :

http://hints.macworld.com/article.php?story=20081217161612647

Voir aussi:

http://www.mactricksandtips.com/2008/09/send-mail-over-your-network.html

Par exemple:

mail -s "hello" "example@example.com" <

``

Cela enverra un e-mail à example@example.com avec le sujet hello et le message

Bonjour

Monde

``

0 votes

Je viens d'essayer, et ça a marché pour moi, mais j'ai deux questions par curiosité.1. Que signifie << , en ligne j'ai vu des exemples avec '<' ou '<<'. A quoi ça sert ? Et pourquoi avez-vous mis End Of File là et à la fin du message ?

0 votes

Les balises "<

90voto

Sans doute le moyen le plus simple est d'utiliser curl pour cela, il n'est pas nécessaire d'installer des packages supplémentaires et il peut être configuré directement dans une requête.

Voici un exemple utilisant le serveur smtp de gmail :

curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
  --mail-from 'from-email@gmail.com' \
  --mail-rcpt 'to-email@gmail.com' \
  --user 'from-email@gmail.com:YourPassword' \
  -T <(echo -e 'From: from-email@gmail.com\nTo: to-email@gmail.com\nSubject: Test de Curl\n\nBonjour')

41voto

JRFerguson Points 4628

Si tout ce dont vous avez besoin est une ligne d'objet (comme dans un message d'alerte), faites simplement:

mailx -s "C'est tout ce qu'elle a écrit" < /dev/null "moi-même@monadresse"

0 votes

Vous devrez peut-être installer mailutils. Il peut être installé via un gestionnaire de paquets (par exemple apt install mailutils)

23voto

MiaeKim Points 900

Si vous souhaitez attacher un fichier sur Linux

echo 'contenu du mail' | mailx -s 'sujet du mail' -a piecejointe.txt username@stackoverflow.com

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X