r23 - 05 May 2008 - 16:07:14 - IntRigeriYou are here: wiki.boum.org >  Frangipane Web  >  Email > EmailScripts

frangipane - email (scripts)

Scripts pour gérer les Email.

Considérations générales

On ne laisse pas maildrop créer les répertoires tout seul, car ça impliquerait de mettre en dur dans /etc/maildroprc le quota des nouvelles boîtes, et c'est moche.

Contraintes à implémenter

Comptes shell

La base n'empêche pas la création d'une boîte @boum.org. C'est donc la méthode de création de bam/alias qui devra vérifier.

Réciproquement, quand on crée un nouveau compte shell, nous devrons vérifier qu'il ne correpond pas à 1 bam/alias déjà existant, et le cas échéant, ajouter dans hash:/etc/postfix/transport la ligne correspondante à <nouveau compte shell>@boum.org.

Travail pré-fGP

NB : cette page a été écrite avant la modélisation de franGiPane, il faut donc la retravailler sévèrement...

existe?(adresse_mail)

vérifie en interrogeant le serveur SMTP

créer_mail(adresse_mail, mot_de_passe=blabla, initialiser_boîte=oui)

SI le domaine n'est pas géré par nous (au niveau de Postfix, DNS, etc. ; cf ajout_domaine) ALORS exit(erreur: domaine étranger)

SI existe?(adresse_mail) reussit ALORS exit(erreur: cette adresse existe déjà)

SI il existe déjà une liste dont le nom est le même, y compris avec un autre nom de domaine ALORS exit(erreur: adresse non disponible)

Ajouter ce qu'il faut dans /etc/courier/userdb, en copiant/adaptant une ligne existante (attention a ne pas remplacer les tabulations par des espaces).

Mettre le bon mot de passe dans /etc/courier/userdb :

echo "$mot_de_passe" | userdbpw -md5 | sudo userdb $adresse_mail set systempw

Compiler /etc/courier/userdb en lançant makeuserdb

Créer, avec les bonnes permissions Unix, le $HOME de l'user virtuel : (/var/mail/domain.tld/user) :

sudo -u vmail mkdir /var/mail/DOMAIN.TLD/USER
sudo -u vmail chmod -R 750 /var/mail/DOMAIN.TLD/USER
sudo -u vmail chown -R vmail.vmail /var/mail/DOMAIN.TLD/USER

SI $initialiser_boîte == oui ALORS

sudo cp -a /root/politburo/frangipane/Maildir /var/mail/DOMAIN.TLD/USER/
cat /etc/maildrop/message_de_bienvenue | sudo maildrop -d $adresse_mail
FIN SI

Ajouter ce qu'il faut dans /etc/postfix/vmailbox (ou vmailbox-infokiosques, etc., si un fichier comme ça existe déjà pour ce domaine, sinon, dans vmailbox) ; puis le compiler avec sudo postmap /etc/postfix/vmailbox (en adaptant si c'est un autre fichier).

Si l'adresse EMAIL@boum.org correspond à un compte shell : ajouter une ligne à /etc/postfix/vtransport pour forcer Postfix à la considérer comme une boîte virtuelle.

Cleaner après soi si ça déconne.

importer_mail(adresse_mail, repertoire_boîte, fichier_mot_de_passe_crypté)

verifier que le repertoire est bon

SI créer_mail(adresse_mail, non) ne marche pas ALORS exit(erreur de créer_mail)

$maildir = /var/mail/DOMAINE.TLD/USER/Maildir

sudo cp -a $repertoire_boite/{*,.*} $maildir

SI les dossiers .Drafts OU .Sent existent ALORS les renommer respectivement en .Brouillons et .Envoy&AOk-s FIN SI

 
sudo rm $maildir/courierimap{subscribed,uiddb}
sudo chown -R vmail.vmail $maildir
sudo find $maildir -type d -exec chmod 750 {} \;
sudo find $maildir -type f -exec chmod 640 {} \;

Renommer les répertoires contenant des caractères non-ascii :

  • é -> &AOk-
  • è -> &AOg-
  • ê -> &AOo-
  • à -> &AOA-
  • ç -> &AOc-
  • À -> &AMA-
  • É -> &AMk-
  • ô -> &APQ-
Au pire on peut s'aider de http://www.topolis.lt/squirrelmail/utf7-imap.php smile

initialiser_boîte($adresse_mail)

(re)créer courierimapsubscribed avec ce qu'il faut dedans : make_courierimapsubscribed $maildir

Mettre le bon mot de passe dans /etc/courier/userdb :

  • si je connais le mot de passe en clair : echo "$mot_de_passe" | userdbpw -md5 | sudo userdb $adresse_mail set systempw
  • sinon : echo "$mot_de_passe_crypté"  | sudo userdb $adresse_mail set systempw
  • dans tous les cas, lancer sudo makeuserdb pour compiler le fichier

initialiser_boîte(adresse_mail)

$maildir = '/var/mail/DOMAINE.TLD/USER/Maildir'

SI $maildir/maildirsize existe ALORS l'effacer FIN SI

sudo -u vmail maildirmake $maildir

sudo -u vmail maildirmake -q 50000000S $maildir

SI $maildir/.Spam n'existe pas ALORS
sudo -u vmail maildirmake -f Spam $maildir FIN SI

SI $maildir/.NonSpam n'existe pas ALORS
sudo -u vmail maildirmake -f NonSpam? $maildir FIN SI

Mettre dans $maildir/courierimapsubscribed, en créant ce fichier si besoin (permissions 644, propriétaire vmail, groupe vmail) :

INBOX.Envoy&AOk-s
INBOX.NonSpam
INBOX.Spam
INBOX.Trash
INBOX.Brouillons

envoyer le mail de bienvenue :
cat /etc/maildrop/message_de_bienvenue | sudo maildrop -d $adresse_mail

supprimer_mail

MySQL

Supprimer les trucs qui concernent la boite dans la base SQL de Squirrelmail ; exemple :
  $ mysql -h web.boum.org -u squirreluser -p squirrelmail
  mysql> DELETE FROM userprefs WHERE user='test@infokiosques.net';

Postfix

  • supprimer la ligne concernant la boite dans /etc/postfix/vmailbox ; mettre à jour /etc/postfix/vmailbox.db: sudo postmap /etc/postfix/vmailbox
  • supprimer, le cas echeant, la ligne concernant la boite dans /etc/postfix/vtransport ; mettre à jour /etc/postfix/vtransport.db: sudo postmap /etc/postfix/vtransport

Courier

  • supprimer la ligne concernant la boite dans /etc/courier/userdb ; mettre à jour /etc/courier/userdb.db: sudo makeuserdb

Maildir

  • sudo rm -rf /var/mail/DOMAINE.TLD/USER/ pour supprimer ce qu'il reste de la boite (à savoir les mails...)

SquirrelMail

  • supprimer le répertoire de données : sudo rm -rf /var/lib/squirrelmail/data/USER@DOMAIN.TLD.gnupg/

créer_alias(adresse_alias, adresse_cible)

SI le domaine n'est pas géré par nous (au niveau de Postfix, DNS, etc. ; cf ajout_domaine) ALORS exit(erreur: domaine étranger)

SI existe?(adresse_alias) reussit ALORS exit(erreur: cette adresse existe déjà)

SI il existe déjà une liste dont le nom est le même, y compris avec un autre nom de domaine ALORS exit(erreur: adresse non disponible)

Ajouter ce qu'il faut dans /etc/postfix/valias et le compiler avec sudo postmap /etc/postfix/valias

cleaner après soi si ça déconne

supprimer_alias

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r23 < r22 < r21 < r20 < r19 | More topic actions
Frangipane.EmailScripts moved from Politburo.FranGiPaneMailScripts on 12 Feb 2006 - 18:00 by IntRigeri - put it back
 
Powered by wiki.boum.org
Des idées, requêtes ou problèmes en rapport avec ce wiki ? écris nous !