Postfix 2.11을 사용자 또는 도메인별로 VDA 패치로 패치해야 합니까?할당량 지원, dovecot 2.2.x를 imap 서버로 사용하는 경우? 저는 postfixadmin 2.3과 함께 우분투 14.04 LTS를 사용하고 있습니다. 유용한 작업 가이드에 감사드립니다. 감사합니다
비둘기장 -n 출력
master.cf
고양이 비둘기장-sql.conf.ext
드라이버 = mysql 연결 = 호스트=127.0.0.1 dbname=postfixadmin 사용자=postfixadmin 비밀번호=XXXXXXXX default_pass_scheme = MD5-CRYPT
password_query=사용자 이름을 선택하세요. 비밀번호는 메일함에서 사용자 이름='%u'; user_query = SELECT maildir AS home,5000 AS uid,5000 AS gid, CONCAT("*:bytes=",quota) AS quota_rule FROM Mailbox WHERE username = '%n@%d' AND active=1;
답변1
postfix
LDA 자체를 수행하지 않고 deliver
대신 비둘기장을 호출하는 경우 postfix
할당량에 대해 전혀 알 필요가 없습니다.
가상 도메인 관리에 사용했다면 postfixadmin
이미 할당량 제한에 필요한 모든 것을 갖춘 것입니다. dovecot
사용자 할당량을 가져오려면 의 SQL 쿼리를 수정해야 합니다 .
user_query = SELECT maildir AS home, \
26 AS uid, \
26 AS gid, \
CONCAT("*:bytes=",quota) AS quota_rule \
FROM mailbox \
WHERE username = '%n@%d' \
AND active=1;
(무작위로 해당 예제를 복사하여 붙여넣지 말고 템플릿으로 사용하세요)
그런 다음 할당량 플러그인과 경고 서비스를 설정해야 합니다.dovecot.conf
업데이트됨:
. . . . . .
# this line enable quota plugin!
mail_plugins = quota
# here is the plugin's configuration
plugin {
quota = maildir:User quota
quota_rule = Junk:ignore
quota_rule2 = Trash:storage=+100M
quota_warning = storage=90%% quota-warning 90 %u %d
quota_warning2 = storage=80%% quota-warning 80 %u %d
quota_exceeded_message = ERROR:422 - Mailbox full, sorry.
. . . . .
}
. . . . .
service quota-warning {
executable = script /path/to/the/overquota.sh
user = $mail_uid
group = $mail_gid
unix_listener quota-warning {
user = $mail_uid
group = $mail_gid
}
}
. . . . .
overquota.sh
다음과 같아야 합니다:
#!/bin/sh
cat << EOT | /usr/local/libexec/dovecot/dovecot-lda -d $2 -o "plugin/quota=maildir:User quota:noenforcing"
From: postmaster@$3
To: $2
Subject: == Quota warning ==
Content-Type: text/plain; charset="UTF-8"
Your mailbox is $1% full, so clean up your mess, please!
EOT
exit 0
####
Dovecot은 deliver
메시지를 받은편지함에 저장하려고 할 때 할당량이 미리 정의된 임계값인 80% 및 90%에 도달했는지 또는 도달하지 않았는지 확인합니다. 그렇다면 할당량 경고 서비스가 호출되고 스크립트가 실행되어 추가 할당량 체크아웃 없이 경고 메시지를 사서함에 넣습니다.