Mail

Envoyer des mails en utilisant la ligne de commande

Prérequis

  • Le service postfix (ou sendmail) doit tourner. Vérifier en lançant la commande (un seul des deux doit être lancé)
    /etc/init.d/postfix start
  • Si l'on veut envoyer une pièce jointe, il faut tout d'abord l'encoder avec uuencode. Il n'est pas forcement installé par défaut
    yum install -y sharutils (base redhat)
    ou
    apt-get install sharutils (base debian)

Les commandes de bases

Envoyer un mail avec la commande mail

$ mail root@localhost
Subject: Titre du mail
Description...
.  <-- un point de fin de message
Cc:

Envoyer un mail avec la commande mutt

$ mutt -s "objet du mail" adresse@monsite.org < "."

(rappelez vous le . à la fin pour finir le corp du message: < ”.” )

Autre programme de mail en ligne de commande

  • Email (authentification smtp, etc.)

Réglages avancés

Envoyer le contenu d'un fichier

Envoyer le contenu de fstab par exemple

mail root@localhost -s "Fichier fstab" < /etc/fstab

Envoyer un fichier de sauvegarde

  • avec la commande mail (et uuencode)
    tar -zcvf - /root/dossierASauver/ \
    | uuencode backupdossierASauver.tar.gz \
    | mail -s "objet du mail" adresse@monsite.org
  • avec la commande mutt
    tar czfv backup.tar.gz /home/repASauver \
    && mutt -a backup.tar.gz -s "objet du mail" adresse@monsite.org < "." \
    && rm -f backup.tar.gz

Envoyer des mails vers l'extérieur

Sur debian/ubuntu, il vous faut les paquets exim4 et mailx. A l'installation d'exim4, il faut spécifier qu'on veut juste envoyer des mails sans serveur de mail en local, puis préciser son nom de machine et le serveur smtp à utliser.

Pour reconfigurer exim4 si nécessaire :

dpkg-reconfigure -plow exim4-config

Ensuite, il suffit de taper :

mail -s titre_du_message adresse_email < corps_du_message

corps_du_message est un fichier texte enregistré dans votre home.

Si un mail reste dans la file d'attente mailq, on peut taper pour en savoir plus:

exim4 -Mvl <msgid>

Sources : crans.org