LDA: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Dovecot|Back]]<br><br> | [[Dovecot|Back]]<br><br> | ||
==Dovecot LDA== | |||
# qmailctl stop | # qmailctl stop | ||
# cd /home/vpopmail/domains/domain.tld | # cd /home/vpopmail/domains/domain.tld | ||
Line 9: | Line 9: | ||
| /var/qmail/bin/preline -f /usr/libexec/dovecot/deliver -d \$EXT@\$USER | | /var/qmail/bin/preline -f /usr/libexec/dovecot/deliver -d \$EXT@\$USER | ||
__EOF__ | __EOF__ | ||
# mkdir /var/log/dovecot-lda && chmod 770 /var/log/dovecot-lda && chown vpopmail:vchkpw /var/log/dovecot-lda | # mkdir /var/log/dovecot-lda && chmod 770 /var/log/dovecot-lda && chown vpopmail:vchkpw /var/log/dovecot-lda | ||
# touch /etc/logrotate.d/dovecot-lda | # touch /etc/logrotate.d/dovecot-lda | ||
# cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf | # cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig | ||
# cat >> /etc/dovecot/dovecot.conf << __EOF__ | # cat >> /etc/dovecot/dovecot.conf << __EOF__ | ||
# | |||
# LDA | |||
protocol lda { | protocol lda { | ||
deliver_log_format = From:<%f>-<%e> :: Subject:<%s> :: Status:<%$> :: MsgID:<%m> :: Size<%p> :: vSize<%w> | deliver_log_format = From:<%f>-<%e> :: Subject:<%s> :: Status:<%$> :: MsgID:<%m> :: Size<%p> :: vSize<%w> | ||
Line 22: | Line 23: | ||
unix_listener stats-writer { | unix_listener stats-writer { | ||
group = vchkpw | group = vchkpw | ||
} | } | ||
} | } | ||
__EOF__ | __EOF__ | ||
# systemctl restart dovecot | # systemctl restart dovecot | ||
# qmailctl start | |||
==Dovecot Sieve== | |||
# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.lda.orig | # cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.lda.orig | ||
# yum -y install dovecot-pigeonhole | # yum -y install dovecot-pigeonhole | ||
# mkdir /var/lib/dovecot/sieve | |||
# cat >> /etc/dovecot/dovecot.conf << __EOF__ | # cat >> /etc/dovecot/dovecot.conf << __EOF__ | ||
# | |||
# Sieve | |||
plugin { | plugin { | ||
sieve = ~/.dovecot.sieve | sieve = ~/.dovecot.sieve | ||
sieve_dir = ~/ | sieve_global_path = /var/lib/dovecot/sieve/default.sieve | ||
sieve_dir = ~/sieve | |||
sieve_global_dir = /var/lib/dovecot/sieve/ | |||
} | } | ||
protocol lda { | protocol lda { | ||
mail_plugins = $mail_plugins sieve | mail_plugins = $mail_plugins sieve | ||
} | } | ||
__EOF__ | |||
# systemctl restart dovecot | |||
Global permissions | |||
# setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot/sieve | |||
# setfacl -d -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot/sieve | |||
# setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot | |||
# setfacl -d -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot | |||
User permissions | |||
# cd /home/vpopmail/domains/domain.tld/user | # cd /home/vpopmail/domains/domain.tld/user | ||
# mkdir .sieve | # mkdir .sieve | ||
Line 47: | Line 60: | ||
# chown vpopmail:vchkpw .dovecot.sieve | # chown vpopmail:vchkpw .dovecot.sieve | ||
# chmod 700 .sieve | # chmod 700 .sieve | ||
Edit global file | |||
# cat >> /var/lib/dovecot/sieve/default.sieve << __EOF__ | |||
require "fileinto"; | |||
if header :contains "X-Spam-Flag" "YES" { | |||
fileinto "spam"; | |||
} | |||
__EOF__ | |||
''sievec must be run whenever the sieve file is edited'' | |||
# sievec /var/lib/dovecot/sieve/default.sieve | |||
==Manage Sieve== | |||
# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.sieve.orig | |||
# cat >> /etc/dovecot/dovecot.conf << __EOF__ | |||
# | |||
# Dovecot Manage Sieve | |||
protocols = $protocols sieve | |||
service managesieve-login { | |||
inet_listener sieve { | |||
port = 4190 | |||
} | |||
} | |||
__EOF__ | |||
# systemctl restart dovecot |
Latest revision as of 15:58, 20 October 2024
Dovecot LDA
# qmailctl stop # cd /home/vpopmail/domains/domain.tld # cp -p .qmail-default .qmail-default.bak # cat > .qmail-default << __EOF__ | /usr/bin/dspam --user \$EXT@\$HOST --deliver=stdout --feature=no,wh \ | /usr/bin/rspamc --mime \ | /var/qmail/bin/preline -f /usr/libexec/dovecot/deliver -d \$EXT@\$USER __EOF__ # mkdir /var/log/dovecot-lda && chmod 770 /var/log/dovecot-lda && chown vpopmail:vchkpw /var/log/dovecot-lda # touch /etc/logrotate.d/dovecot-lda # cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig # cat >> /etc/dovecot/dovecot.conf << __EOF__ # # LDA protocol lda { deliver_log_format = From:<%f>-<%e> :: Subject:<%s> :: Status:<%$> :: MsgID:<%m> :: Size<%p> :: vSize<%w> log_path = /var/log/dovecot-lda/dovecot-lda-errors.log info_log_path = /var/log/dovecot-lda/dovecot-lda.log } service stats { unix_listener stats-writer { group = vchkpw } } __EOF__ # systemctl restart dovecot # qmailctl start
Dovecot Sieve
# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.lda.orig # yum -y install dovecot-pigeonhole # mkdir /var/lib/dovecot/sieve # cat >> /etc/dovecot/dovecot.conf << __EOF__ # # Sieve plugin { sieve = ~/.dovecot.sieve sieve_global_path = /var/lib/dovecot/sieve/default.sieve sieve_dir = ~/sieve sieve_global_dir = /var/lib/dovecot/sieve/ } protocol lda { mail_plugins = $mail_plugins sieve } __EOF__ # systemctl restart dovecot
Global permissions
# setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot/sieve # setfacl -d -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot/sieve # setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot # setfacl -d -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot
User permissions
# cd /home/vpopmail/domains/domain.tld/user # mkdir .sieve # touch .sieve/user.sieve # ln -s .sieve/user.sieve .dovecot.sieve # chown -R vpopmail:vchkpw .sieve # chown vpopmail:vchkpw .dovecot.sieve # chmod 700 .sieve
Edit global file
# cat >> /var/lib/dovecot/sieve/default.sieve << __EOF__ require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "spam"; } __EOF__
sievec must be run whenever the sieve file is edited
# sievec /var/lib/dovecot/sieve/default.sieve
Manage Sieve
# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.sieve.orig # cat >> /etc/dovecot/dovecot.conf << __EOF__ # # Dovecot Manage Sieve protocols = $protocols sieve service managesieve-login { inet_listener sieve { port = 4190 } } __EOF__ # systemctl restart dovecot