braveo:docdovecothardlinks
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. | ||
