一點一滴, 見證它的成長 ~
小弟是由 0.7.0 版加入 iredmail 的大家庭, 以下的 log 取自官網
0.8.1
1. postfix virtual transport 的 Path:
mysql/virtual_mailbox_maps.cf # OLD SETTING #query = SELECT CONCAT(mailbox.storagenode, '/', mailbox.maildir) FROM ... # NEW SETTING query = SELECT CONCAT(mailbox.storagenode, '/', mailbox.maildir, '/Maildir/') FROM ...
如果用 Default 的 dovecot 不用理
2. BCC 查表的次序
postfix/main.cf
# NEW SETTINGS recipient_bcc_maps = ......recipient_bcc_maps_user.cf, ......recipient_bcc_maps_domain.cf sender_bcc_maps = ......sender_bcc_maps_user.cf, ......sender_bcc_maps_domain.cf
3. dovecot column (folder sharing: mailbox.enablelib-storage)
dovecot-mysql.conf
# NEW SETTING AND mailbox.`enable%Ls%Lc`=1 \
4. 新功能: anyone_shares
sql> CREATE TABLE IF NOT EXISTS anyone_shares ( from_user VARCHAR(255) NOT NULL, dummy CHAR(1) DEFAULT '1', PRIMARY KEY (from_user) );
0.8.0
1. Enable greylist
/etc/policyd.conf
OPTINOUT=1 OPTINOUTALL=1
2. Roundcube setting
config/main.inc.php
$rcmail_config['login_lc'] = false; // 不分大小寫 $rcmail_config['force_https'] = true; // http 自動跳去 https
3. dovecot2.x 的 log-rotate
/etc/logrotate.d/dovecot, /etc/logrotate.d/sieve
postrotate doveadm log reopen endscript
4. POP3S/IMAPS in Dovecot
ssl = required disable_plaintext_auth = yes
5. Dovecot-2 command: doveadm
mysql> USE vmail; mysql> ALTER TABLE mailbox ADD COLUMN enabledoveadm TINYINT(1) NOT NULL DEFAULT 1;
0.7.4
1. Dovecot-1.x 的 sieve_dir
# Change to:
sieve_dir = /var/vmail/sieve/%Ld/%Ln # <-- Remove the last slash.
2. Debian 的 Awstats 權限問題:
usermod -g adm www-data
3. INDEXes for Amavisd
mysql> USE amavisd;
mysql> ALTER TABLE maddr ADD INDEX maddr_idx_email (email);
mysql> ALTER TABLE maddr ADD INDEX maddr_idx_domain (domain);
mysql> ALTER TABLE msgs ADD INDEX msgs_idx_content (content);
mysql> ALTER TABLE msgs ADD INDEX msgs_idx_content_time_num (content, time_num);
mysql> ALTER TABLE msgs ADD INDEX msgs_idx_mail_id (mail_id);
mysql> ALTER TABLE quarantine ADD INDEX quar_idx_mail_id (mail_id);
4. dovecot 的 realtime quota usage 放在獨立的 table
dovecot-used-quota.conf
mysql> USE vmail; mysql> CREATE TABLE IF NOT EXISTS `used_quota` ( `username` VARCHAR(255) NOT NULL, `bytes` BIGINT NOT NULL DEFAULT 0, `messages` BIGINT NOT NULL DEFAULT 0, PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
0.7.3
為 Dovecot 2.x, 加入了 mailbox.enabledeliver
mysql> USE vmail; mysql> ALTER TABLE mailbox ADD COLUMN enablelda TINYINT(1) NOT NULL DEFAULT 1; mysql> ALTER TABLE mailbox ADD INDEX enablelda (enablelda);
0.7.2
1. fail2ban 的 smtp (postfix.iredmail.conf)
failregex = \[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed
2. postfix alias domain support
virtual_mailbox_domains.cf
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx=0 AND active=1
UNION SELECT alias_domain.alias_domain FROM alias_domain,domain WHERE alias_domain.alias_domain='%s' AND alias_domain.active=1 AND alias_domain.target_domain=domain.domain AND domain.active=1 AND domain.backupmx=0
0.7.1
小弟沒有安裝過
0.7.0
沒有由 0.6.1 升上來, 沒有真的經歷過修改
1. 記錄用戶改時改過 PW
plugins/password/config.inc.php
$rcmail_config['password_query'] = "UPDATE vmail.mailbox SET password=%c,passwordlastchange=NOW() WHERE username=%u LIMIT 1";
2. 為 vmail database 建立了不少 index
3. catch-all account
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_maps.cf, proxy:mysql:/etc/postfix/catchall_maps.cf, # <- Add this line proxy:mysql:/etc/postfix/domain_alias_catchall_maps.cf # <- Add this line.
File: catchall_maps.cf
query = SELECT alias.goto FROM alias,domain WHERE alias.address='%d' AND alias.address=domain.domain AND alias.active=1 AND domain.active=1 AND domain.backupmx=0
domain_alias_catchall_maps.cf
query = SELECT alias.goto FROM alias,alias_domain,domain WHERE alias_domain.alias_domain='%d' AND alias.address=alias_domain.target_domain AND alias_domain.target_domain=domain.domain AND alias.active=1 AND alias_domain.active=1
4. backup mx support
mysql_domain_alias_maps.cf
query = SELECT alias.goto FROM alias,alias_domain,domain WHERE alias_domain.alias_domain='%d'
AND alias.address=CONCAT('%u', '@', alias_domain.target_domain)
AND alias_domain.target_domain=domain.domain AND alias.active=1 AND alias_domain.active=1
AND domain.backupmx=0
5. domain status
mysql_virtual_mailbox_maps.cf
mysql_virtual_alias_maps.cf
mysql_transport_maps_user.cf
mysql_sender_login_maps.cf
mysql_recipient_bcc_maps_user.cf
mysql_sender_bcc_maps_user.cf
dovecot-mysql.conf
query = SELECT .......... ????.active='1'