ImapSpamScan.pl – Anti-spam IMAP distant / déporté

imapSpamScan.pl - scriptPour des besoins personnels j’ai codé un petit script en Perl (toujours sous licence beerware) afin de pouvoir scanner un répertoire IMAP avec la puissance de SpamAssassin à distance. ça s’avère très pratique :

  • Quand on ne maîtrise pas le serveur de messagerie ;
  • Qu’il n’y a pas d’anti-spam (ou un anti-spam tout pourrit) ;
  • Que votre serveur est trop « petit » (en terme de ressource) pour accueillir un SpamAssassin ;

Des solutions anti-spam déporté existait ici ou et même mais elle ne me satisferaient pas pleinement.. Du coup j’ai pris mes petits doigts et c’est partie…

Commentaire

Petit commentaire sur le code (visible dans ma bébé forge) :

  1. Je n’ai pas trouvé mieux que la base sqlite pour dire « hey toi je t’ai déjà scanner je passe mon chemin » Ma première idée était de créer un flags IMAP personnalisé (genre « SpamChecked ») d’après ce que j’ai lu ça n’est pas permis dans le protocole IMAP standard… c’est moche…
  2. (Une amélioration à penser) Il faudrait pouvoir stocker le mot de passe en crypté.. le hic est qu’il faut que ça soit réversible pour le servir au serveur IMAP (?) là si quelqu’un à des idées je suis preneur…

Utilisation

Installer les lib perl dépendante :

Sous Ubuntu/Debian :

$ aptitude install libmail-imapclient-perl libmail-spamassassin-perl  libdbi-perl libdbd-sqlite3-perl

Sinon pour les perl compilé ou autres systèmes :

$ cpan -i Mail::SpamAssassin Mail::IMAPClient DBI

Télécharger  :

$ git clone https://forge.zici.fr/source/vrac.git
$ mkdir /opt/imapSpamScan
$ cp vrac/imapSpamScan.pl /opt/imapSpamScan
$ chmod +x imapSpamScan/imapSpamScan.pl

La commande à mettre au lancement de votre poste (dans /etc/xdg/autostart.. ou /etc/rc.local ou .bashrc ou … ou …)

$ /opt/imapSpamScan/imapSpamScan.pl --daemon --imapsrv=serveur.a.scanner.fr --imapuser=brad --imappassword=pitt --db=~/.config/imapSpamScan.db

Fabrication four/cuiseur solaire

Pour vos questions « cuisson solaire » (four/tube…) : un forum dédié existe, j’y suis pour papoter ! Venez discuter : https://forum.cuisson-solaire.fr/

By atlascuisinesolaire.com [Public domain], via Wikimedia Commons

Edit 2026 : nouvel article sur la construction de mon four solaire Atominique et sur mon cuiseur solaire parabolique.

En voilà une bonne alternative au barbecue ! et plus si affinité…

Un fonctionnement tout ce qu’il y a de plus simple. J’ai découvert ça lors d’un chantier participatif chez Hervé. Lui avait fabriqué un cuiseur solaire avec une ancienne parabole satellite qu’il avait recouvert de filme réfléchissant… et… c’est tout ! ça turbine à plus de 100°C !

Ressources :

La peinture à l’ocre / argile

potsSuite à un chantier participe fait avec Formaterre, Thierry Baruch m’a parlé de la peinture à l’ocre. Une solution écologiquement / économiquement idéale pour le bois. Je vous conseil d’ailleurs l’article de Thierry :

[…] revient à environ 1€ le kilo de peinture […] … en 45 minutes !!! […] Vous avez besoin de 260 grammes de farine de blé ou de seigle. Mélangez-les à 20 cl d’eau pour obtenir  une pâte. Ajoutez-y 3 l d’eau chaude. Passez au mixeur pour obtenir un mélange homogène, sans grumeaux. Laissez cuire à feu doux 15 mn.Une fois le mélange homogène, versez 1kg d’ocre en pluie fine puis 100 g de sulfate de fer. Chauffez à feu moyen et remuez fréquemment pendant 15 minutes. Il est possible d’utiliser également le mixer. Attention : Si vous utilisez une cuillère en bois, elle sera difficilement récupérable.Pour finir Versez ensuite 40 cl d’huile de lin (de préférence de noix, mais c’est beaucoup plus cher) puis 4 cl de savon liquide biologique. A nouveau, remuez le tout pendant 15 minutes. Soyez vigilant pour éviter l’accroche au fond du récipient. Laissez refroidir. Vous disposer de quelques kilos de peinture.

A noter que toutes les couleurs sont disponibles, du rouge au blanc, gris, noire, jaune, bleu… Maintenant si vous en avez sur votre terrain c’est encore mieux…

Des ressources :

Écoconstruction dans le Rhône – départ

By habitatvegetal.com
By habitatvegetal.com

Je vais résumer dans ce billet de quoi démarrer en l’éco|auto-construction dans le Rhöne.

Compaillons : THE asso qui fait la promotion des maisons pailles

Oikos : c’est l’antenne local des Compaillons. C’est par eux que j’ai démarré, de très bon contact, des petites formations gratuites le samedi matin, mise en relation pour des chantiers participatifs, visite de chantier… bref le top !

Formaterre : Encadrement de chantier participatif spécialement dans les enduit terre/paille mais pas que.. Thierry est très sympa et un bon formateur !

CASTORS, Sur Villeurbanne, il assure les auto constructeurs en cas d’accident sur les chantiers mais ce n’est pas forcement des maisons paille. Ils proposent des visites de chantiers de toutes sortes… Pas rencontré mais j’en ai entendu beaucoup de bien.

De toute façon il n’y a rien de mieux que de participer… Aider les auto-constructeurs : Eux seront ravi d’un coup de pouce et en échange tu peux rapprendre en pratiquant

LA Licence Beerware

beerwareUne belle licence qui invite à la rencontre, au partage et pourtant si méconnu…

Au départ de l’écriture de ce billet, je voulais  fustiger les postes sur des forums / blogs dans ce style :

J’ai fait un super script qui permet d’être gentil avec son système, j’en profite pour vous le partager :

#!/bin/bash
# Copyright MOI MOI <MOI@MOI.MOI>. This program is free software;
# you can redistribute it and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 of the License,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# Please take a look at http://www.gnu.org/licenses/gpl.html
if ! [ -z "$1" ]
then
    ionice -c3 -p$1 ; renice -n 19 -p $1
else
    ionice -c3 -p$$ ; renice -n 19 -p $$
fi

Pourquoi ?  Parce que quand je vois 3 lignes de code dans un forum et que je vois une licence :

  • Copyright : ça me déprime;
  • Copyleft : ça me chiffonne ;

J’ai envie de savoir s’il est vraiment pertinent de mettre sous licence pour 3 lignes de codes ? (je pense que non)

A l’arrivée : je viens de passer ce blog d’une licence Créative Commons By à une licence Beerware…  je ne vais pas vous faire un dessin sur le cheminement qui mis a conduit… c’est probablement l’aboutissement de {m|l}a démarche libriste…

Ce que dit la licence :

La licence dit :

/*
 * --------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <phk@FreeBSD.ORG> wrote this file. As long as you retain this 
 * notice you can do whatever you want with this stuff. If we meet 
 * some day, and you think this stuff is worth it, you can buy me
 * a beer in return Poul-Henning Kamp
 * ---------------------------------------------------------------
 */

Traduction en français (sources) :

/*
 * ----------------------------------------------------------------
 * « LICENCE BEERWARE » (Révision 42):
 * <phk@FreeBSD.ORG> a créé ce fichier. Tant que vous conservez cet 
 * avertissement,vous pouvez faire ce que vous voulez de ce truc. 
 * Si on se rencontre un jour et que vous pensez que ce truc vaut le 
 * coup, vous pouvez me payer une bière en retour. Poul-Henning Kamp
 * -----------------------------------------------------------------
 */

Donc, comme le dit la licence, si le contenu de ce blog vous plaît et qu’on ce croise offrez-moi une bière « en retour ».

[FredgniX] diff et patch en dix minutes

Je me permets ici de reprendre un article du blog de FredgniX, qui a été fermé (ce que je trouve bien dommage, je revenais souvent sur cet article) je le pose donc ici pour en garder trace… (retrouvé sur webarchive)

Le guide de dix minutes sur diff et patch

[…]

Voici un guide rapide sur diff et patch qui vous aidera dans ces situations en décrivant les outils de la façon la plus communément utilisée. Il vous en dira suffisamment pour commencer de la bonne façon. Plus tard, vous pourrez apprendre les tenants et les aboutissants de diff et patch à votre guise, en utilisant les pages de manuel.

Appliquer des patchs avec patch

Pour appliquer un patch à un seul fichier, mettez vous dans le dossier où se trouve le fichier à modifier, le patch et appelez patch :

patch < foo.patch

Ces instructions assument que le patch est distribué dans un format unifié, qui identifie le fichier sur lequel appliquer le patch. Sinon, vous pouvez le préciser avec la commande :

patch foo.txt < bar.patch

Appliquer des patches à un dossier complet (sûrement le cas le plus commun) est similaire, mais vous devez faire attention en identifiant le « niveau p ». Cela signifie que, dans les fichiers de patch, les fichiers à patcher sont identifiés par des noms de chemins qui peuvent être différents maintenant que les fichiers se trouvent sur votre ordinateur plutôt que sur l’ordinateur où le patch a été créé. Le niveau de profondeur p est fait pour ignorer les parties du nom de chemin afin qu’il puisse identifier les fichiers correctement. Le plus souvent un niveau de 1 fonctionnera, vous utiliserez donc :

patch -p1 < bar.patch

Vous devriez changer le répertoire source de haut niveau avant d’exécuter cette commande. Si un niveau p n’identifie pas correctement les fichiers à patcher, inspecter le patch pour repérer les noms complets d’accès aux fichiers. Si vous voyez un nom comme :

/users/stephen/package/src/net/http.c

Et que vous souhaitez modifier le fichier net/http.c, utilisez :

patch -p5 < baz.patch

En général, compter jusqu’à un pour chaque séparateur de chemin (barre oblique) que vous supprimez à partir du début du chemin, jusqu’à ce que ce que le chemin qui reste existe dans votre répertoire de travail. Le nombre atteint est le niveau p.

Pour effacer les effets d’un patch, utilisez l’option -R, comme ceci :

patch -p5 -R < baz.patch

Créer des patchs avec diff

L’utilisation de diff est simple si vous travaillez avec des fichiers ou des répertoires individuels entiers. Pour créer un patch pour un seul fichier que vous avez copié, renommé puis modifé, utilisez la commande :

diff -u original.c new.c > original.patch

Pour créer un patch pour une arborescence complète des sources, faire une copie de l’arbre :

cp -R original new

Apportez les modifications nécessaires dans le répertoire copié. Ensuite, créez un patch avec la commande suivante :

diff -rupN original/ new/ > original.patch

C’est tout ce dont vous avez besoin pour commencez à travailler avec diff et patch. Pour de plus amples informations, utilisez les pages de manuel :

man diff
man patch

pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail

J’ai mis en place un bébé service pour tester du bon fonctionnement d’un serveur SMTP. En gros vous envoyer un email à ping [arobase] zici [point] fr (en l’occurrence) et vous recevrez en retour un email « pong » avec les entêtes du message reçu par le serveur.

Le mettre en place à la maison

Pré-requis : Perl & un serveur smtp configuré (pour moi c’est Postfix)

Ensuite 4 commandes et c’est réglé :

$ cd /opt/
$ git clone https://framagit.org/kepon/pongSmtpPl.git
$ echo "ping: \"| perl /opt/pongSmtpPl/pongSmtp.pl\"" >> /etc/aliases
$ newaliases

Note : Si vous mettez en place ce script n’hésitez pas à m’en faire part. Une petite liste de « ping@dom1.com, ping@dom2.com…. » peut être intéressante…

Rien de plus à ajouter… si vous voyez des améliorations n’hésite pas !

En continuant à utiliser le site, vous acceptez l’utilisation des cookies (au chocolat) Plus d’informations

Les cookies sont utilisés à des fin de statistique de visite du blog sur une plateforme indépendante que j'héberge moi même. Les statistiques sot faites avec un logiciel libre. Aucune information n'est redistribué à google ou autre. Je suis seul autorisé à lire ces informations

Fermer