LDA: Difference between revisions

From QmailToaster
Jump to navigation Jump to search
No edit summary
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Dovecot|Back]]<br><br>
[[Dovecot|Back]]<br><br>
'''Dovecot LDA'''
==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__
# setfacl -m  u:vpopmail:rw,g:vchkpw:rw  /var/run/dovecot/stats-writer
  # 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.bak.orig
  # 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 26: Line 27:
  __EOF__
  __EOF__
  # systemctl restart dovecot
  # systemctl restart dovecot
# qmailctl start


'''Dovecot Sieve'''
==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
Line 40: Line 45:
   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 -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 -d -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot/sieve
  # setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot
  # setfacl -m u:vpopmail:rwx,g:vchkpw:rx /var/lib/dovecot
  # setfacl -d -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 52: 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__
 
#
  service managesieve-login {
# Dovecot Manage Sieve
      inet_listener sieve {
protocols = $protocols sieve
      port = 4190
service managesieve-login {
      }
    inet_listener sieve {
  }
    port = 4190
    }
}
__EOF__
# systemctl restart dovecot

Latest revision as of 15:58, 20 October 2024

Back

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