msmtp simplement

Pour mémoire: on va spammer comme des gorets :-) Noooooooon, je déconne ;-)

Initialement, je cherchais un moyen simple d'envoyer des mails directement, c'est à dire sans utiliser son MTA installé (Exim, Postfix, par exemple): “msmtp” m'est apparu.

Voici quelques commandes simples, pour envoyer des mails via smtp.free.fr

Exemple minimal:

$ echo -n "Hello." | msmtp --host=smtp.free.fr --from=root@free.fr <RECIPIENT>

C'est ce qu'on appelle forger son adresse e-mail: root@free.fr vient d'envoyer un e-mail a “<RECIPIENT>” .
A la lecture du mail, il est évident qu'il est mal-formé: pas de sujet , pas de date, etc…

~~READMORE~~

Plus fort:

$ echo -e -n "From: Administrateur de Free <root@free.fr>\nTo: <RECIPIENT>\nSubject: Information sur votre compte client\n\nHello, Ceci est un test." | msmtp --host=smtp.free.fr --from=root@free.fr <RECIPIENT>

Rappel: <RECIPIENT> doit être une adresse e-mail valide.

Complet en script bash :

#!/bin/bash
#set -x

MAIL_FROM="root@free.fr"
MAIL_TO="userXXXX@domainXXX.fr"           ; # <--- FIXME
MAIL_SUBJECT="[Urgent] Ceci est une demande de rançon !"

cat << __EOF__ | msmtp --host=smtp.free.fr --syslog=on --timeout=10 --read-recipients --from=${MAIL_FROM}
From: Administrateur de Free <root@free.fr>
To: ${MAIL_TO}
Bcc: userYYYY@domainYYY.fr,userZZZZ@domainZZZ.fr
Subject: =?UTF-8?B?`echo "${MAIL_SUBJECT}" | base64 -w 0`?=
Date: `LANG=C date "+%a, %d %b %Y %X %z"`
Content-Type: text/plain; charset="utf-8"

Salut !

Je réclame une rançon d'1 million de dollars !!!!!

Bisous

-- 
"Deux précautions valent mieux qu'une."
__EOF__

# -----------------
# EOF

Y a juste a éditer correctement les (3) adresses e-mails, et ça marche.

Voila. C'est un bon début pour commencer la pêche :-D