Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les news > Web > Un serveur SMTP en Lua : naissance de Tethys > Lecture d'une news

Commentaires de news :
Un serveur SMTP en Lua : naissance de Tethys

Revenir à liste des news

Un serveur SMTP en Lua : naissance de Tethys

# Par Linktim, le 01/05/2008 à 00:00:00
Image utilisateur
D'un côté un serveur SMTP et de l'autre un langage peu connu : le Lua. Beaucoup vous diront que l'association des deux est impossible et pourtant quelqu'un l'a fait, il a créé un serveur SMTP en Lua. Mais pourquoi une telle décision ? Tout simplement car l'auteur voulait faire un serveur qui soit facile d'utilisation, facile à configurer sans pour autant manquer d'options en tout genre. Philosophie très lointaine de Sendmail (qui n'est pas réellement un serveur SMTP mais qui en inclut un), qui est très critiqué pour sa complexité et sa prise de tête pour le configurer. Il a donc fallu un an de développement et pas mal de tests pour sortir la première version stable.

Un langage peu connu : Lua



Créé en 1991 par des chercheurs brésiliens, Lua a su se faire une place dans l'industrie du système embarqué et plus récemment du jeu vidéo pour plusieurs raisons :
  • Il est écrit en C ANSI, ce qui lui permet une portabilité énorme.
  • Il est conçu pour être utilisé par d'autres programmes ou langages (voir cet article sur son utilisation avec le C++).
  • Son interprêteur est relativement léger (95 à 185 Ko selon le système).
  • Sa syntaxe est relativement facile :
    Code : Lua
    1
    2
    3
    4
    5
    6
    if a = b then ...
    end
    -- pour les commentaires
    while a = b do 
    ...
    end
    
Vous avez surement dû croiser ce langage si vous jouez à WoW puisqu'il est utilisé pour l'interface. Sinon, il est aussi utilisé pour faire des IA.

Naissance de Tethys


Image utilisateur

Le SMTP est un protocole assez vieux (utilisation massive vers les années 80 mais toujours d'actualité !) qui permet de transférer un email vers une messagerie électronique. Un serveur SMTP est donc le programme qui permet ce transfert. Pour en savoir plus sur SMTP je vous incite à lire l'article Wikipédia ou encore ce cours sur le protocole ou même le big-tuto sur la messagerie électronique.

Comme je l'ai dit dans l'introduction, le serveur le plus utilisé au monde est surement Sendmail mais il n'est pas le seul, il existe aussi Postfix ou encore Qmail (qui n'a aucun lien avec Qt) pour ne citer que les plus connus. Malheureusement, aucun n'est réellement facile à configurer ni même à utiliser ce qui a beaucoup choqué l'auteur de Tethys. Il a donc créé un serveur SMTP adhérant à la même philosophie que le langage avec lequel il est écrit : puissance et simplicité.

Concernant la licence, Tethys est disponible en GPL version 3, vous pouvez donc étudier les sources, les améliorer, les redistribuer aisément comme indiqué dans les termes de cette licence libre.

L'installation est plutôt facile, il faut télécharger un tarball de 38ko, le décompresser et lancer l'installation via l'outil "make".
Ensuite, il faut définir les utilisateurs virtuels et commencer à configurer. Dans Tethys, pas mal de choses sont gérées par le SGBDR MySQL, il suffit donc juste d'effectuer une requête SQL INSERT INTO ... pour ajouter un nouvel utilisateur et définir l'hôte par exemple.

Vient ensuite la configuration : tout se passe dans les fichiers d'extension .lua dans lesquels il faut juste modifier les valeurs des variables. Tout d'abord il faut définir les identifiants SQL puis l'hôte ainsi que le port (qui est 25 par défaut). Ensuite, on peut choisir d'exécuter Tethys en tant que démon (tourne en arrière-plan) ou le lancer manuellement à l'aide d'une console. On peut aussi définir la taille maximale d'un mail lors de l'envoi, le dossier de stockage, etc.
Voici à quoi ressemble le fichier principal de configuration jugé « lisible » par rapport aux autres :

Secret (cliquez pour afficher)
Code : Lua
 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
-- This is *NOT* needed if you installed using LuaRocks
tethys = "/usr/local/share/tethys2/"

-- If set to false the processes will run in foreground in the terminal
daemon.daemonize = true
daemon.pid_file = "/var/run/tethys2-%s.pid"

-- Listen on which host/port (use 0.0.0.0 as host to listen on all interfaces)
bind.host = "localhost"
bind.port = 25
-- Which hostname to use for various replies(this should identify the mail server)
bind.reply_host = "net-core.org"

-- Run the server as this user / group, this must be the ids, not the names
-- Uncommend those if you dont want your server to run as root(recommanded)
--bind.uid = 89
--bind.gid = 89

-- Max mail body size acceptable
max_data_size = 1024 * 1024 * 30 -- 30 MB

-- List of DISTANT ips that are allowed to relay mail without auth, if unsure leave it as the default
relay.allow_ip =
{
	["127.0.0.1"] = true,
}

-- Which default deposit plugin to use, and its configuration
-- (note that deposit plugins can be set on a per user base if the users manager plugin allows it)
deposit.plugin = "tethys2.plugins.deposit.DiskSpool"
-- Which spool type(mailbox format) to use for the DiskSpool
deposit.spool_type = "tethys2.util.Maildir"
-- There all the mails will be stored in a tree like: $HOST/$ACCOUNT/.maildir/
deposit.spool_path = "/var/tethys/domains/"
-- Outgoing mails end up there while waiting for the sender process to send them
deposit.relay_maildir = "/var/tethys/relay-maildir/"

-- Sender process keeps trying to send mails every 4 hours, 4 times
sender.retries = 4
sender.retries_time = 4 * 60 * 60

-- Who sends error messages for this server
mail_error.from = "postmaster@net-core.org"



Il existe déjà des plugins pour Tethys, certains sont même supportés nativement. Actuellement, ils sont au nombre de trois :
  • User Manager : un plugin qui facilite la gestion des utilisateurs virtuels.
  • Deposit : un plugin qui assure le bon fonctionnement de la réception des mails.
  • Filter : un plugin qui filtre les mails, mais définit des options internes pour déplacer, supprimer, etc. les mails.
Enfin, il est intéressant de dire que ce serveur SMTP supporte Maildir, une structure composée de dossiers utilisée pour la première fois par Qmail. Le principe est simple : habituellement les clients utilisent le format de stockage mbox, mais le problème de mbox est qu'il stocke tout dans un fichier (pour schématiser) et les mails sont simplement séparés par une ligne, il faut donc mettre le fichier en lecture seule quand on veut ajouter un email, en supprimer un, etc., afin de ne pas corrompre les données. Or avec Maildir on stocke les mails dans plusieurs fichiers. À ce propos, vous pouvez voir ce benchmark effectué entre mbox et Maildir.

Liens relatifs



Merci aux zCorrecteurs vincent1870 et Pas un 0, un -1.

81 Commentaires

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Page : Précédente  1  2  3  Suivante
Pseudo Commentaire
1 visiteur sur cette news (0 membre et 1 anonyme)
Page : Précédente  1  2  3  Suivante
Hors ligne Artefact2 # Posté le 01/05/2008 à 10:15:53
C'est toi le bouc !
Avatar
Groupe : Membres
Ce qui me surprend, c'est qu'on parle de "Serveur SMTP" et non de MTA...

Au moins, c'est le terme précis :D

Image utilisateur
Mes tutoriels : Bien utiliser les fonctions de hachage / La 2D en C# / Utilisez les bases de données dans vos programmes C#

"Imaginez un monde ou chacun est libre de s'exprimer à tout sujet..."
Venez tous sur Freenet 0.7 ! Comment ? Pourquoi ?
 
Hors ligne Natim # Posté le 01/05/2008 à 10:30:21
En stage chez Simple It
Avatar
Groupe : Membres
Moi je dirais que le background informatique des Zéros diffère selon les personnes.
On voit des liens qui explique notamment ce qu'est le SMTP, Lua, un système embarqué ou encore la GPLv3 (et tous les autres)...
Après je ne sais pas où vous avez lu que Tethys était uniquement pour Linux, mais moi j'ai lu dans la news que Lua était multiplateforme.

from utbm import rentree
Python IRC sur Epiknet
@ bientôt Natim
Status Jabber : Image utilisateur Image utilisateur
Zenwalk-fr.org
 
Hors ligne ~Electro # Posté le 01/05/2008 à 11:03:02
The ~Electro World
Avatar
Groupe : Membres
Je n'avais jamais entendu parler de Lua.
En tous cas, allier puissance et simplicité est une vraie merveille.

Merci Linktim pour cette superbe news !

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
Tout le monde a son moment de gloire, il suffit d'y croire.
Proverbe espagnol
 
Hors ligne tom'z # Posté le 01/05/2008 à 11:11:57
Avatar
Groupe : Membres
Très intéressant comme news !
 
Hors ligne Aurel88 # Posté le 01/05/2008 à 11:26:27
Ma citation, bonne question !
Avatar
Groupe : Membres
Très bonne news !!
Je n'avais jamais entendu parler de Lua...

Signé Aurel88

 
Hors ligne Magnikor # Posté le 01/05/2008 à 12:45:41
Avatar
Groupe : Membres
C'est vraiment une très bonne news, très instructive : entre LUA que je ne connaissais pas et, ce nouveau projet de serveur SMTP (aux allures très prometteuses). Merci à l'équipe des newsers :)

Je ne possède qu'un seul idole, mon miroir :soleil:
 
Hors ligne gp2mv3 # Posté le 01/05/2008 à 13:15:07
TPNH : Sauvons la planète !
Avatar
Groupe : Membres
Bonne news, je connaissais déjà le lua qui est utilisé sur les psp entra autre.

C'est en faisant des erreurs que l'on apprend.
"La musique est la langue des émotions." [E. Kant]

Blog Dotclear : www.gp2mv3.ht.cx
Vous voulez dynamiser le menu de votre site: C'est ici ;)
 
Hors ligne ~Electro # Posté le 01/05/2008 à 14:08:39
The ~Electro World
Avatar
Groupe : Membres
Citation : gp2mv3
Bonne news, je connaissais déjà le lua qui est utilisé sur les psp entra autre.


Ah bon ? Il est déjà utilisé pour la psp ? C'est surprenant, tu m'apprend quelque chose tient, je ne savais pas ! Merci pour le renseignement !

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
Tout le monde a son moment de gloire, il suffit d'y croire.
Proverbe espagnol
 
Hors ligne nicknick63 # Posté le 01/05/2008 à 14:12:43
Avatar
Groupe : Membres
Citation : electro2
Citation : gp2mv3
Bonne news, je connaissais déjà le lua qui est utilisé sur les psp entra autre.


Ah bon ? Il est déjà utilisé pour la psp ? C'est surprenant, tu m'apprend quelque chose tient, je ne savais pas ! Merci pour le renseignement !

Il est essentiellement utilisé pour les programmes crées par des amateurs, les homebrews.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne ~Electro # Posté le 01/05/2008 à 14:20:16
The ~Electro World
Avatar
Groupe : Membres
Citation : nicknick63
Il est essentiellement utilisé pour les programmes crées par des amateurs

Oui, c'est logique quand on y pense, car les amateurs peuvent ainsi l'utiliser plus facile, et c'est donc moins dûr d'apprendre comme le configurer !

Mais tu peux me citer deux ou trois programmes qui l'utilise si tu en connais ?

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
Tout le monde a son moment de gloire, il suffit d'y croire.
Proverbe espagnol
 
Hors ligne yoch # Posté le 01/05/2008 à 14:26:28
Avatar
Groupe : Membres
Puisque vous parlez tous de Lua, je met mon petit grain de sel,

Il existe une extension pour scripter The GIMP en Lua : Gluas.
 
Hors ligne nicknick63 # Posté le 01/05/2008 à 15:14:24
Avatar
Groupe : Membres
@electro2 => http://www.pspgen.com/modules.php?name=News&new_topic=5 La plupart des homebrews sont en Lua, il est très répandu ;) .

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne SpyBen # Posté le 01/05/2008 à 16:04:04
Noob Spotted !!
Avatar
Groupe : Membres
ça a l'air bien sympa lua, bien simple comme il faut :-°
Et chapeau pour la news, vraiment bien! ;)

Image utilisateur
 
Hors ligne Brendalf # Posté le 01/05/2008 à 19:48:12
Groupe : Membres
Très bonne news, mais vous avez été doublé depuis le 10 avril par linuxfr ;)

[url]http://linuxfr.org/2008/04/10/23953.html[/url]
 
Hors ligne nicknick63 # Posté le 01/05/2008 à 19:56:51
Avatar
Groupe : Membres
C'est pas vraiment une nouvelle, c'est... une sorte d'article de découverte ^^ . Je pense que tout le monde s'en fout que Linuxfr en ait parlé avant le SdZ, et c'est peut-être même sur ce site que Linktim a découvert Tethys :-°.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne A-dream # Posté le 01/05/2008 à 19:59:40
Openoffice ça roxxxx §
Avatar
Groupe : Membres
Salut.

Il y a une faute dans la news : Citation : Linktim, cette chère fougère
D'un coté le serveur SMTP

Citation : La langue française
D'un côté le serveur SMTP


Car oui, le serveur SMTP n'est pas coté en bourse ! ;)

Code : Autre
1
2
3
4
<Redlime> erf
<A-dream> wut
<Redlime> j'ai cliqué trop vite sur le bouton refuser xDDDD
<A-dream> XDDDDDDD

 
Hors ligne ~Electro # Posté le 01/05/2008 à 20:05:01
The ~Electro World
Avatar
Groupe : Membres
Citation : Brendalf
Très bonne news, mais vous avez été doublé depuis le 10 avril par linuxfr ;)

[url]http://linuxfr.org/2008/04/10/23953.html[/url]


Déjà je te conseillerais de mettre le lien comme ceci :
http://linuxfr.org/2008/04/10/23953.html

En même temps, la news de ton site par rapport à celle de Linktim n'est pas comparable. Linktim a bien expliqué tandis que... enfin bref, encore bravo cher newser !

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
Tout le monde a son moment de gloire, il suffit d'y croire.
Proverbe espagnol
 
Hors ligne trobert94 # Posté le 01/05/2008 à 20:33:58
Avatar
Groupe : Membres
Moi je connaissait le lua. C'est souvent utilisé pour faire des jeux sur PSP (pas les jeux du commerce ;) ).

EDIT : Même pas vu que vous en parliez au dessus... :-°
Hors ligne ! M@X ! # Posté le 01/05/2008 à 21:30:35
Iron Man
Avatar
Groupe : Membres
Très bonne news :) .

J'ai de petites connaissances en LUA mais je ne pensais pas que l'on pouvait faire ce genre de chose avec. Sa donne envie de s'y remettre un peu :-° .

"T'es en train d'essayer de sodomiser de petits insectes volants" - GuilOooo
"Le cerveau c'est comme un sac poubelle, plus tu tasse plus t'en mets"
 
Hors ligne Kapout ? # Posté le 01/05/2008 à 23:12:58
Nil mortifi sine lucre
Avatar
Groupe : Membres
Le lua, langage très puissant utilisé dans le dév PSP (homebrews), mais aussi des jeux PC comme supreme commander (fichiers de langues (que j'avais traduit trèèès facilement sur la démo ;), fichiers des unités, de config, de menu... tout ça pour un jeu ULTRA personnalisable et très facilement modable ;) ) ;)

Image utilisateur Image utilisateur
 
Hors ligne Niko300 # Posté le 01/05/2008 à 23:40:42
Le silence n'entends rien
Avatar
Groupe : Membres
Bonne news ;)

La syntaxe ressemble au Liberty Basic :)
 
Hors ligne Liffaen # Posté le 02/05/2008 à 00:09:45
Avatar
Groupe : Membres
Half Life est fait d'un peu de C++ d'un peut de 3D et de beaucoup de LUA
Hors ligne ! M@X ! # Posté le 02/05/2008 à 00:28:12
Iron Man
Avatar
Groupe : Membres
Est-ce que vous pouvez m'expliquer l'utilité de LUA :-° .
Langage de script ? Utilisé que pour la 3D ? Je ne sais pas trop ce que c'est.

Merci :) .

"T'es en train d'essayer de sodomiser de petits insectes volants" - GuilOooo
"Le cerveau c'est comme un sac poubelle, plus tu tasse plus t'en mets"
 
Hors ligne OyoKooN # Posté le 02/05/2008 à 01:35:16
Soy una raya en el mar !
Avatar
Groupe : Membres
Comme tu peux le voir, c'est un langage très clair et facilement modulable, ce qui permet l'ajout de modifications relativement rapidement.
Après, je ne suis pas spécialiste de ce langage mais il plus d'une utilité ! :)

"Celui qui, dans la vie, est parti de zéro pour n'arriver à rien, n'a de merci à dire à personne." Pierre Dac
 
Hors ligne Arcanos # Posté le 02/05/2008 à 15:12:23
Imasu ka imasen ka
Avatar
Groupe : Membres
Moi aussi j'ai cru à un nouveau serveur pour le site du zéro au début ><

Image utilisateur
 
Hors ligne ~Electro # Posté le 02/05/2008 à 15:27:58
The ~Electro World
Avatar
Groupe : Membres
Oui, ça ressemble un peu aux News de M@téo21 qui aurait expliqué qu'ils sont acheté un nouveau serveur qu'il ont appelés Tethys.

Mais il y a un problème, ils ne l'auraient pas appelés Tethys, c'est pas un personnage des Simpson :D

Le seul moyen de se débarrasser d'une tentation, c'est d'y céder.
Oscar Wilde
Tout le monde a son moment de gloire, il suffit d'y croire.
Proverbe espagnol
 
Hors ligne iPoulet # Posté le 02/05/2008 à 16:21:41
Avatar
Groupe : Membres
Personnellement je me demande ce qu'apporte Lua pour un tel projet. Personne ne parle de lui comme d'un langage rapide ou particulièrement utile pour l'écriture de serveur, alors, pourquoi lui ? Juste pour le fun ?

Le Blog de l'Homme Moderne
« Les extensions .yaws comment ça pète. » (M@teo21, à propos de http://da-bhm.org/index.yaws)
 
Hors ligne Furious_Sirius # Posté le 02/05/2008 à 16:25:26
Groupe : Membres
Je m'étais attaqué une fois au Lua quand je jouais à WoW, mais j'ai vite abandonné par manque de temps et car j'ai arrêté de jouer à WoW aussi ^^

Studio Znak. La référence informatique.

Citation : Furious
Windows c'est comme les tamagotchis, même si tu le nourris, il crève ... :p
 
Hors ligne trobert94 # Posté le 02/05/2008 à 19:09:21
Avatar
Groupe : Membres
Le lua a été utilisé car il est très simple a utiliser, ce qui était le but de ce serveur, la facilité.
Hors ligne nicknick63 # Posté le 02/05/2008 à 19:52:37
Avatar
Groupe : Membres
C'est vrai que des langages comme le Python c'est über compliqué et c'est beaucoup moins puissant :-° .

Je ne critique pas le fait qu'il ait été fait en Lua, au contraire, mais je me dit juste que son créateur est un gros Geek qui voulait faire un programme avec un langage qui n'est pas destiné à ça. Enfin le pire c'est que ça fait parler du projet, la news ne serait surement pas sortit si ça avait été fait en C par exemple.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Revenir à liste des news

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 34 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.026s (0.0065s)