Post

Envoi de message en ligne de commande en utilisant msmtp

Envoi de message en ligne de commande en utilisant msmtp

Msmtp

Les principaux points forts de ‘msmtp’ sont les suivants :

  • L’envoi d’emails via MUA, typiquement Emacs ou Mutt. Assurez-vous simplement d’indiquer au MUA sur votre machine de ne pas appeler /usr/sbin/sendmail, mais d’appeler le msmtp.
  • Redirection des courriels vers un SMTP (le serveur facilite l’envoi)
  • Profils - vous pouvez configurer ‘msmtp’ avec différents SMTP et configurations, ce qui le rend idéal pour les clients mobiles.
  • Pipelining de commandes
  • Prise en charge du proxy SOCKS et des IDN (noms de domaine internationalisés)

Installation

Pour installer ‘msmtp’ et le paquetage associé.

1
sudo apt-get install msmtp msmtp-mta

Configuration

Créez le fichier de configuration

1
nano ~/.msmtprc

Configurez ensuite ‘msmtprc’, votre fichier devrait ressembler à ce qui suit

1
2
3
4
5
6
7
8
9
10
11
12
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        ~/.msmtp.log
account        monmail
host           live.smtp.mailtrap.io
port           587
from           your-email@example.com
user           useremail              // ou useremail@your-email@example.com
password       UserEmailPassword  
account default : monmail

Shell

Envoi en ligne de commande

1
echo -e "Subject: msmtp en ligne de commande\r\nMIME-Version: 1.0\nContent-Type: text/html; charset=utf-8\r\n\r\nLe contenu du message..." |msmtp --from=expediteur@origi.loc -t destinataire@desti.loc

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$lien = 'https://site.mondomain.tld/phplogin/activate.php?email=' . "test@domain.tld" . '&code=' . '4567';
$message = '<p>Please click the following link to activate your account: <a href="' . $lien . '">' . $lien . '</a></p>';

$from    = 'postmaster@mondomain.tld';
$noreply = 'noreply@mondomain.tld';
$subject = 'Account Activation Required';
$headers = 'From: ' . $from . "\r\n" . 'Reply-To: ' . $noreply . "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-Type: text/html; charset=UTF-8' . "\r\n";

// Chemin vers fichier texte
$file ="/tmp/message.txt";
// Ouverture en mode écriture
$fileopen=(fopen("$file",'w'));
// Ecriture dans le fichier texte
fwrite($fileopen,"To: yack@cinay.eu"."\n");
//fwrite($fileopen,"From: postmaster@mondomain.tld"."\n");
fwrite($fileopen,$headers);
fwrite($fileopen,"Subject: ".$subject."\n"."\n"."\n");
fwrite($fileopen,$message."\n");
// On ferme le fichier proprement
fclose($fileopen);
// Exécuter bash
exec('/usr/bin/msmtp -t < /tmp/message.txt');
?>

Cet article est sous licence CC BY 4.0 par l'auteur.