Contenu | Rechercher | Menus
Selon les tags présents sur cette page, celle-ci est ancienne et ne contient plus d'informations sur une des versions supportées d'Ubuntu.
Cette page est en cours de rédaction.
Apportez votre aide…

ssmtp

ssmtp permet à des applications d'envoyer des courriels via la commande /usr/sbin/sendmail. Contrairement à postfix, il ne fait que rediriger les courriers vers un serveur SMTP externe. C'est donc un outil très léger et rapide, et qui ne demande que très peu de paramétrage.

A quoi cela peut servir ?

ssmtp peut permettre facilement :

  • à CRON, ou encore à la commande at, de publier leurs résultats ;
  • d'envoyer des courriels via le terminal ;
  • aux CMS et LMS d'un environnement de développement lampp d'envoyer des courriels via sendmail (ex : tester les messages envoyés par Drupal ou Spip).

Si vous voulez savoir si vous pouvez utiliser sendmail avant cette installation, entrez : whereis sendmail Si vous n'avez rien, l'installation et la configuration de ssmtp vous permettra d'utiliser sendmail.

Alternatives

Pré-requis

  • Disposer d'une connexion à Internet configurée et activée.
  • Disposer d'un compte de courriel, connaître son mot de passe et le serveur smtp du service de courriel.

Comment connaître le serveur smtp du service de courriel ? Vous pouvez consulter cette page http://www.arobase.org/adresses/serveurs.htm et renseigner le nom de votre fournisseur de service. Notez alors le serveur smtp et le port utilisé. Si vous ne le trouvez pas dans cette liste, vous pouvez essayer de rajouter mail au nom de domaine de votre courriel, par exemple : mail.votredomaine.com ou mail.libertysurf.fr.

Installation

Installez le paquet ssmtp.

Testez la commande suivante :

whereis sendmail

Cette commande devrait renvoyer une réponse du type sendmail: /usr/sbin/sendmail. Utilisez cette réponse dans la commande suivante :

ls -la /usr/sbin/sendmail

Si la configuration est correcte, sendmail devrait dorénavant être relié à ssmtp, et donc la commande précédente devrait retourner un message comme "/usr/sbin/sendmail → ssmtp"

Configuration

Il y a 2 fichiers à configurer.

Configuration de ssmtp.conf

Ouvrez le fichier le fichier /etc/ssmtp/ssmtp.conf en root comme par exemple avec :

gksudo gedit /etc/ssmtp/ssmtp.conf

Abordons le paramétrage lié à ce fichier.

Configuration de root

# Config file for sSMTP sendmail
#
# Tous les utilisateurs avec un uid < 1000 enverront un courriel avec ce nom
# Laissez vide ou commentez la ligne pour déactiver la réécriture
root=votre_identifiant@fournisseur.com

Vous pouvez mettre ici votre adresse de courriel.

Configuration d'AuthUser

Ce paramètre, tout comme le suivant (AuthPass=) n'est pas présent par défaut dans le fichier de configuration, rajoutez-le après root=identifiant@fournisseur.com par exemple, mais ne le mettez pas à la fin du fichier sinon dans les logs (var/log/mail.log) ou dans le terminal vous pourrez avoir le message d'erreur suivant

send-mail: Authorization failed (535 5.7.0 authentication failed)

Can't send mail: sendmail process failed with error code 1

# Nom d'utilisateur du compte email avec lequel vous envoyer les courriells
AuthUser=votre_identifiant@fournisseur.com

Mettez donc l'identifiant qui vous permet d'accéder à la boîte de messagerie. Cela peut être du type votre_identifiant@fournisseur.com OU votre_identifiant OU votre_identifiant+fournisseur.com (remplacez @ par +). Pour info, le choix entre les 3 possibilités dépend de la configuration du serveur smtp. Par exemple, pour moi, ça a fonctionné avec votre_identifiant@fournisseur.com.

Configuration d'AuthPass

# Mot de passe de ce même compte
AuthPass=le_mot_de_passe_utilisé_pour_votre_identifiant@fournisseur.com

Mettez ici votre mot de passe.

Attention, par défaut les droits de /etc/ssmtp/ssmtp.conf sont rw-r-r soit 644, ce qui signifie que des autres utilisateurs de votre OS pourront lire votre mot de passe s'ils visitent ce fichier. Pour pallier cela vous pouvez créer une adresse de messagerie uniquement utilisé pour ssmtp ou vous pouvez régler les permissions de /etc/ssmtp/ssmtp.conf sur 640. Cela permettra à ssmtp et au compte de l'administrateur système d'y accéder, sans permettre aux autres utilisateurs de pouvoir lire le contenu de ce fichier. Si vous réglez les permissions de /etc/ssmtp/ssmtp.conf sur 640, il faudra alors créer un utilisateur ssmtp pour que ce dernier puisse accéder à ce fichier de configuration. Vous pouvez par exemple vous inspirer de la commande suivante : pw useradd ssmtp -g nogroup -h - -s /sbin/nologin -d /nonexistent -c "sSMTP pseudo-user" décrite ici : http://blogs.techrepublic.com.com/security/?p=440 mais sous ubuntu pw ne semble pas pouvoir fonctionner. Si vous savez comment adapter cette commande pour ubuntu, merci de l'ajouter ici. Une fois l'utilisateur ssmtp créer, rendez le propriétaire de /etc/ssmtp/ssmtp.conf .

sudo chmod 600 /etc/ssmtp/ssmtp.conf
sudo useradd ssmtp -g nogroup -s /sbin/nologin -c "sSMTP pseudo-user"
sudo chown ssmtp /etc/ssmtp/ssmtp.conf

Configuration de mailhub

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail.fournisseur.com:587

Mettez ici le serveur SMTP que vous allez utiliser, de cette manière ssmtp saura où faire parvenir vos courriels (cf. Prérequis si vous ne savez pas quel est le votre). Les chiffres après les deux points indiquent le port qui va être utilisé lors du contact du serveur smtp. 465 serait le port standard pour les connections SMPTP protégées par TLS et SSL (cf. plus bas). Pour utiliser des connections non cryptées vous pouvez mettre 25 (le port par defaut) ou 587 si par exemple votre FAI bloque le port 25 (mais selon votre fournisseur de service de messagerie, les ports 25 ou 587 peuvent aussi utiliser TLS).

Configuration de rewriteDomain

# Where will the mail seem to come from?
rewriteDomain=fournisseur.com

Ceci indique à ssmtp que l'entête de votre courriel doit être modifiée afin que le nom de domaine (texte après @, par exemple fournisseur.com pour votre_identifiant@fournisseur.com ) soit répertorié comme source de votre adresse de courriel. Attention, si vous mettez autre un "fournisseur.com" différent de votre réel votre_identifiant@fournisseur.com, le message pourra ne pas être reçu par votre destinataire. Si vous commentez cette partie (avec #) le message peut être reçu et votre propre "fournisseur.com" sera utilisé.

Configuration de hostname

# The full hostname
hostname=nom_de_votre_ordinateur.domain

Hostname indique ici le nom de votre ordinateur utilisé pour écrire et envoyer les courriels. La partie .domain peut ou ne pas être mentionné. Vous pouvez entrez dans un terminal

hostname

pour connaître votre nom d'ordinateur.

Note : On dirait que ça n'a pas d'incidence sur la possibilité ou non d'envoyer des courriels.

Configuration de FromLineOverride

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

Mettre YES permet au programme qui envoie un courriel de modifier l'entête du message concernant l'émetteur.

# Utilisation d'une connexion sécurisée SSL/TLS (décommenter pour activer)
#UseTLS=YES

Décommenter UseTLS=YES permet d'encrypter la connexion au serveur SMTP et de protéger votre nom d'utilisateur et mot de passe.

Si lors d'un envoi de courriels avec le terminal ou dans les logs (var/log/mail.log) vous voyez

send-mail: Connection lost in middle of processing
Can't send mail: sendmail process failed with error code 1

, c'est peut être lié à un problème d'utilisation de TLS. Commenter UseTLS=YES peut permettre de résoudre le problème.

UseTLS ne fonctionnerait pas avec authsmtp, seulement UseSTARTTLS fonctionnerait. Vous pouvez donc essayer UseSTARTTLS=YES au lieu de UseTLS=YES cf. https://cloud-support.engineyard.com/faqs/questions/ssmtp

Configuration de revaliases

Passons maintenant au deuxième et dernier fichier à éditer. Ouvrez le fichier le fichier /etc/ssmtp/revaliases en root comme par exemple avec :

gksudo gedit /etc/ssmtp/revaliases

Et appliquez les modifications suivantes :

# sSMTP aliases
# 
# Format:	local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:votre_identifiant@fournisseur.com:mail.fournisseur.com:587
# Other System user: (for Apache)
# www-data:votre_identifiant@fournisseur.com:mail.fournisseur.com:587

Où mail.fournisseur.com le serveur smtp de votre fournisseur de service de messagerie et 587 le port utilisé.

Très pratique, il n'est pas nécessaire de redémarrer quoi que ce soit pour que les modifications de ssmtp.conf soient prises en compte, elles le sont tout de suite.

Utilisation

En Ligne de commande

Une fois ssmtp configuré, vous pouvez installez le paquet xmail et envoyer un courriel avec la commande suivante :

Dans Ubuntu Karmic (9.10) l'installation de xmail requiert la désinstallation de ssmtp.
Si vous voulez simplement tester ssmtp utilisez la commande ssmtp dest@domaine.com pour envoyer un message de test.
Sinon installez mailutils (Attention la commande ci dessous est à rectifier

Attention :Sous 12.04 l'installation de xmail oblige le retrait de ssmtp..!!

echo Contenu du message | mail -v -s "sujet du courriel" lecourrielpourlequelvoussouhaitezrecevoirlemessage@blabla.com

si vous avez installé mailutils (Karmic) :

echo Contenu du message | mail -s "TEST" -t email@destinataire.com -a From:email@expediteur.com

Vous pourrez ainsi vérifier la configuration de ssmtp.conf et essayer de modifier certains paramètres sur ce dernier.

Paramétrer pour LAMP (fonction mail() de PHP)

Ouvrez le fichier /etc/php5/apache2/php.ini et éditez la ligne suivante1) :

sendmail_path = /usr/sbin/ssmtp -t

et ne pas oublier de redémarrer le serveur PHP avec la commande:

sudo service apache2 restart

Accéder aux logs

gedit /var/log/mail.log

Pour aller plus loin

  • Consulter les man de ssmtp :
man ssmtp
man ssmtp.conf

Désinstallation

Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.

Liens

1) l'option -l n'est pas utilisée par ssmtp

ssmtp.txt · Dernière modification: Le 16/05/2013, 14:16 par 92.103.13.94
Le contenu de ce wiki est sous licence : CC BY-SA v3.0