braveo:docdovecothardlinks
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | braveo:docdovecothardlinks [2024/04/16 22:20] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== HardLinks ====== | ||
+ | ===== introduction ===== | ||
+ | Il est très fréquent d' | ||
+ | L' | ||
+ | La solution est d' | ||
+ | |||
+ | Histoire de comprendre : un fichier est stocké sur le disque. Pour retrouver ce fichier, le système utilise un pointeur appelé inode. À cette inode on peut lui affecter un nom (chemin + nom du fichier). Et comme c'est pas trop mal fait, il est possible d' | ||
+ | |||
+ | La seul contrainte, c'est l' | ||
+ | ===== mise en œuvre ===== | ||
+ | |||
+ | Dovecot dans la version 1.2 permet d' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | voici le script delivery.pl | ||
+ | <code perl># | ||
+ | use Sys:: | ||
+ | |||
+ | $ID_mail_interne = rand(10000000); | ||
+ | |||
+ | #il faut mettre le repertoire spool sur la meme partition que celle des boites mails | ||
+ | #il faut aussi mettre les doits d' | ||
+ | #il faut aussi mettre les droits d' | ||
+ | $Spool="/ | ||
+ | $Mail=" | ||
+ | $Debug=" | ||
+ | |||
+ | openlog($program, | ||
+ | |||
+ | if (! -e $Spool) | ||
+ | { | ||
+ | mkdir $Spool||syslog(' | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | open(TMPMAIL, | ||
+ | |||
+ | |||
+ | foreach $Recepient (@ARGV){ | ||
+ | if ($Recepient =~ /^-/) | ||
+ | { | ||
+ | syslog(' | ||
+ | exit 75; | ||
+ | } | ||
+ | if ($Debug eq yes){ | ||
+ | syslog(' | ||
+ | } | ||
+ | } | ||
+ | #on recupere le mail et on le stocke dans le spool | ||
+ | while ($STDIN = < | ||
+ | print TMPMAIL $STDIN; | ||
+ | if ($STDIN =~ / | ||
+ | { | ||
+ | syslog(' | ||
+ | } | ||
+ | } | ||
+ | close (TMPMAIL); | ||
+ | #ensuite pour chaque destinatire on envoie le mail | ||
+ | foreach $Recepient (@ARGV){ | ||
+ | if (/^-/) | ||
+ | { | ||
+ | syslog(' | ||
+ | exit 75; | ||
+ | } | ||
+ | |||
+ | if ($Debug eq yes){ | ||
+ | syslog(' | ||
+ | } | ||
+ | open DELIVER, "/ | ||
+ | @msgDELIVER=< | ||
+ | close DELIVER; | ||
+ | |||
+ | if ( $? != 0 ) | ||
+ | { | ||
+ | print " | ||
+ | syslog(' | ||
+ | syslog(' | ||
+ | for $lineDeliver (@msgDELIVER){ | ||
+ | syslog(' | ||
+ | } | ||
+ | exit 75; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | printf " | ||
+ | syslog(' | ||
+ | unlink($Mail)|| syslog(' | ||
+ | exit 0; | ||
+ | } | ||
+ | } | ||
+ | closelog(); | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ensuite pour pouvoir l' | ||
+ | |||
+ | cp delivry.pl / | ||
+ | |||
+ | puis dans le master.cf vous modifiez la ligne : | ||
+ | |||
+ | # Dovecot LDA | ||
+ | dovecot | ||
+ | |||
+ | en | ||
+ | # Dovecot LDA | ||
+ | dovecot | ||
+ | |||
+ | Et voila dovecot qui delivre les mails avec des liens en dur. |
braveo/docdovecothardlinks.txt · Dernière modification : 2024/04/16 22:20 de 127.0.0.1