LDA: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| (25 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 | |||
# yum -y install dovecot-pigeonhole | # 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 | # cd /home/vpopmail/domains/domain.tld/user | ||
# mkdir .sieve | # mkdir .sieve | ||
| Line 55: | 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 16: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