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 : 1  2  3  Suivante
Pseudo Commentaire
1 visiteur sur cette news (0 membre et 1 anonyme)
Page : 1  2  3  Suivante
Hors ligne Pio154 # Posté le 30/04/2008 à 20:35:36
prendre du temps pour coder
Avatar
Groupe : Membres
Vraiment, félicitation ;) Très bonne news j'adore !
Oups j'ai oublier : et enfin quelques chose de simple ^^

Mon blog : cliquez ici !
:) :D ;) :p :lol: :euh: :( :o :colere2: o_O ^^ :-°
:ange: :colere: :diable: :magicien: :ninja: >_< :pirate: :'( :honte: :soleil: :waw: :zorro:
 
Hors ligne anonymous # Posté le 30/04/2008 à 20:37:29
???
Avatar
Groupe : Membres
Je n'avais jamais entendu parler du Lua ;) .
 
Hors ligne bootoc # Posté le 30/04/2008 à 20:39:43
Avatar
Groupe : Membres
Merci pour l'info' ! Moi aussi je n'avais jamais entendu parlé de Lua... ;)
Hors ligne OyoKooN # Posté le 30/04/2008 à 20:39:56
Soy una raya en el mar !
Avatar
Groupe : Membres
C'est vraiment sympatique comme création !
Le fichier de config est super simple.

Quand à la syntaxe de Lua, elle ressemble pas mal à celle de Ruby, une très bonne chose ! =)

"Celui qui, dans la vie, est parti de zéro pour n'arriver à rien, n'a de merci à dire à personne." Pierre Dac
 
Hors ligne Nakio # Posté le 30/04/2008 à 20:40:13
C != C++
Avatar
Groupe : Membres
Intéressant ^^ !
Merci pour la news !

Age: 15ans
Profession: Lycéen à mes heures perdu.
Passions: Amis, Guitare, Parapente, Programmation
Musique: Mon groupe: Spiritual Popcorn
Langages: C/C++, xHTML, PHP, et d'autres...
OS: Ubuntu 8.04 / Windows XP Coccinelle
 
Hors ligne Artefact2 # Posté le 30/04/2008 à 20:43:07
Avatar
Groupe : Membres
Très sympa comme langage.

La niouze parle d'IA, j'ai toujours rêvé d'étudier le fonctionnement des IA mais malheuresement, c'est pas facile :( Et ca dépend beaucoup du contexte.

Merci bien !

Ps : n'essayez pas chez vous, ça ne fonctionnera pas (port 25 bloqué par les fai, malheuresement pour éviter l'envoi massif de spam).
 
Hors ligne Csame # Posté le 30/04/2008 à 20:43:16
Abyssus abyssum invocat
Avatar
Groupe : Membres
Cette news est intéressante mais il manque complètement une introduction. Être balancé directement dans les détails techniques, c'est vraiment très... brutal. Enfin, ce que j'en dis, moi... :)

Image utilisateur
 
Hors ligne Zopieux # Posté le 30/04/2008 à 20:48:29
useless, that is.
Avatar
Validateurs
Artefact2, et non, si tu es chez un FAI digne de ce nom et qui roxs comme Free par exemple, tu as une option pour désactiver le blocage :p .

Sinon, Csame a un peu raison, beaucoup de termes techniques et peu d'explications, un zéro basique aura du mal à comprendre. Ne nous surestime pas, Linktim...
 
Hors ligne Linktim # Posté le 30/04/2008 à 20:50:14
The Other Side
Avatar
Groupe : Membres
Dites moi ce que vous comprenez pas dans l'intro, je corrigerai. :)
 
Hors ligne Honor # Posté le 30/04/2008 à 20:51:27
maus
Avatar
Groupe : Membres
Au premier coup d'oeil j'ai cru à un nouveau serveur pour le sdz :-°

News très instructive pour Lua et le protocole SMTP.

Datation au carbone 14



[MISE à jour] : ajout vidéo
 
Hors ligne Fox' # Posté le 30/04/2008 à 20:53:05
Suisse -> Valais
Avatar
Groupe : Membres
Intéressant comme news

In every Hero, there could be a Villain
 
Hors ligne Csame # Posté le 30/04/2008 à 21:04:35
Abyssus abyssum invocat
Avatar
Groupe : Membres
Citation : Linktim
Dites moi ce que vous comprenez pas dans l'intro, je corrigerai. :)


Ce n'est pas que je ne comprends pas — quoi que, si, mais bon, c'est une news plutôt technique donc c'est normal ;) — c'est que je trouve qu'une phrase au début du genre : « bonjour chers Zér0s, aujourd'hui nous allons vous parler d'une nouvelle façon d'appréhender le protocole SMTP, cette news sera donc peut-être un peu technique. [expliquer ce qu'est le SMTP], etc. » ne serait pas vraiment du luxe. Parce que là c'est un peu brusque, je trouve. On est sur le Site du Zér0, n'oubliez pas :)

'soirée !

Image utilisateur
 
Hors ligne RiouJ # Posté le 30/04/2008 à 21:07:02
Oh Yeah !
Avatar
Groupe : Membres
Ce n'est pas le langage utilisé pour les AddOn de World of Warcraft ?
Judgehype.lua par exemple :)

C'est parti pour SUPINFO Paris (B1C).
 
Hors ligne nicknick63 # Posté le 30/04/2008 à 21:07:55
Avatar
Groupe : Membres
Une news bien sympa, qui est vraiment pour les curieux, parce que je doute que beaucoup de Zér0s créent des serveurs mails :-° .

Et sinon avant qu'on pose la question, je crois bien qu'un tuto sur le Lua est en cours, en tout cas un membre a proposé d'en faire un y'a pas longtemps.

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 Linktim # Posté le 30/04/2008 à 21:10:08
The Other Side
Avatar
Groupe : Membres
Si je n'ai pas développé dès le début c'est pour ne pas faire d'ombre à la partie « Naissance de Tethys » tout simplement. :)
Je ne fais qu'une approche vraiment très vague dans l'introduction mais je dégage les points principaux (Tethys est créé dans un but de simplicité, ...).
 
Hors ligne Zopieux # Posté le 30/04/2008 à 21:10:14
useless, that is.
Avatar
Validateurs
Citation : RiouJ
Ce n'est pas le langage utilisé pour les AddOn de World of Warcraft ?
Judgehype.lua par exemple :)

Citation : News
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.
 
Hors ligne P!csou # Posté le 30/04/2008 à 21:16:18
Avatar
Groupe : Membres
Bien :p

Le meilleur des sites web Naruto --->CaptaiNaruto


 
Hors ligne alt3rnat1x # Posté le 30/04/2008 à 22:12:13
Avatar
Groupe : Membres
Lua est aussi utilisé sur Garry Mod , il est très simple a prendre en main.

Image utilisateur
 
Hors ligne seb13 # Posté le 30/04/2008 à 22:31:09
Groupe : Membres
Super news, merci!!
 
Hors ligne bakuryu11 # Posté le 30/04/2008 à 22:36:37
http://ganaria.free.fr
Avatar
Groupe : Membres
Bonne news :)

Image utilisateur

 
Hors ligne Ver des Roches2 # Posté le 30/04/2008 à 22:55:15
Avatar
Groupe : Membres
Trés bonne news, sur un sujet original, technique mais pas trop... bref, le top :) .

I like airplane, I'm like a bird, I love flying, I'm free ! Consulter mon site Web sur l'aéronautique et l'informatique.

Ver des Roches o_O ... qui ne creuse pas la vase ! ;)
 
Hors ligne Gartek # Posté le 30/04/2008 à 22:57:44
Avatar
Groupe : Membres
News très intéressante ...

Merci d'avoir partager l'info.

C'est par la critique que l'on progresse.
 
Hors ligne Amine27 # Posté le 30/04/2008 à 23:05:22
sudo apt-get autoremove
Avatar
Groupe : Membres
Merci pour la news
Hors ligne BenXbox # Posté le 01/05/2008 à 00:03:23
Avatar
Groupe : Membres
L'information est bonne mais la news est mauvaise pour des débutants, en effet tu ne précise même pas que c'est pour linux...
Il faudrait revoir cette news et la rendre plus accessible pour les zéros...
 
Hors ligne Orangeloulou # Posté le 01/05/2008 à 01:45:52
J'adooore les oranges :p
Avatar
Groupe : Membres
Bonne news mais je rejoins Benxbox sur ce qu'il dit.
 
Hors ligne spleeneria # Posté le 01/05/2008 à 03:08:16
Avatar
Groupe : Membres
Certes, c'est une news assez technique. Mais en même temps ce n'est pas un tuto ! Toute sa technicité n'a pas vraiment à être expliquée.

Sinon, très bonne news.

Developpeur, Codeur, Alcoolique, Graphiste (on ne peut pas tout avoir)

Spleen Battle, un jeu de strategie en temps réel.

Recherche graphistes pour bonifier mon jeu.
 
Hors ligne ybouane # Posté le 01/05/2008 à 03:27:14
<vive le SDZ!!!>
Avatar
Groupe : Membres
Très bonne news merci

Outils services compteurs générateurs des scripts... gratuitement à 100%
Générateur de gifs animés gratuit
Générateur de bannières animées gratuit
Générateur d'userbars
Générateur de menus web 2.0

Description de mon site:
Support du web est un site qui propose des outils, des services, des compteurs de connecté, des compteur de pages vues, des compteurs de clics, des générateurs de bannières animée gratuit, des scripts php,(X)html, css, javascript... gratuitement à 100% pour les webmasters développeurs...
Image utilisateur
 
Hors ligne Psycause # Posté le 01/05/2008 à 03:54:19
Avatar
Groupe : Membres
Tres bonne News....

Peut être préciser que c'est pour Linux...
Mais bon, en lisant la news ont s'en aperçois vite fais...
( Enfin les connaisseurs ;) )

Mon Site : www.espaceinstrus.com ( !! EN COURS DE REALISATION !! )

Un site réservé aux Instrus Rap-HipHop

Réalisé Grâce au SDZ
;)

 
Hors ligne yoch # Posté le 01/05/2008 à 06:24:35
Avatar
Groupe : Membres
Citation : News
Le SMTP est un protocole assez vieux (utilisation massive vers les années 80) qui permet de transférer un email vers une messagerie électronique. Un serveur SMTP est donc le programme qui permet ce transfert.

Je n'aime pas trop cette définition, mais bon...
SMTP est bien "vieux", mais reste toujours d'actualité. C'est le protocole nécessaire pour envoyer un mail.

Citation : News
Pour en savoir plus sur SMTP je vous incite à lire l'article Wikipédia ou encore ce cours sur le protocole.


Ou encore ce tuto sur le Site du Zér0....

pub détectée... :lol:
 
Hors ligne Linktim # Posté le 01/05/2008 à 10:06:54
The Other Side
Avatar
Groupe : Membres
Citation : BenXbox
tu ne précise même pas que c'est pour linux...

Tethys étant très jeune et écrit en Lua, ça ne m'étonnerai pas qu'un portage vers d'autres systèmes soit fait.

yosh > oui, je n'avais aucune intention de dire que SMTP n'était plus d'actualité, bien au contraire. :)

Sinon, comme je l'ai dit plus haut, au lieu de dire « pas adapté aux zér0s », dites moi concrètement ce qui vous pose problème. ;)
 

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 447 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1067s (0.0772s)