看板FreeBSD
标 题Re: [问题] mail server Quota 的问题
发信站PASSION (Tue May 10 12:16:52 2005)
转信站ptt!ctu-reader!news.nctu!passion
依据之前看到的文件及架设经验,qpopper 预设的运作模式大致如下:
[session 开始]
(1) qpopper确认使用者 id/pass (以 bobby为例);
(2) 锁定 bobby 的 mailbox (以/var/mail/bobby 为例);
(3) 把 /var/mail/bobby 复制另一个暂存区 (以 /var/tmp 为例);
(4) 清空 /var/mail/bobby;
(5) 解除锁定 /var/mail/bobby。
[使用者下载/删除信件...]
(6) 与 client 端软体继续透过 POP3 沟通;此时信件内容以 /var/tmp/bobby 为准。
[session 结束]
(7) 锁定 /var/mail/bobby;
(8) 将使用者欲保留的信件,从 /var/tmp/bobby 加回 /var/mail/bobby;
(9) 删除 /var/tmp/bobby;
(10) 解除锁定 /var/mail/bobby。
会 quota exceeded,问题出在几个地方。
(a) 步骤 (3),/var/mail 与 /var/tmp 同属一个 filesystem,复制後使用量会变两倍。
(b) 步骤 (8),session 期间,有新信件进来,加上使用者欲保留的旧信件超过 quota。
(c) 步骤 (8),已处理过但仍保留於伺服器上之信件,会加上 X-UIDL 的 header,
避免下次要重算一次。如果本来已经濒临 quota上限,加上 header 可能就爆了。
(d) 步骤 (8),已下载但仍保留於伺服器上之信件,qpopper 会加上 Status 的 header,
注明以读取过。与 (c)类似。
使用者遇到状况 (a)是一开始就无法将档案 copy 出,无法自行解决这个问题;
使用者遇到状况 (b)、(c)、(d) 是结束後,无法将档案 append 回去,
只要不要将信件保留在伺服器上 (或者减少保留的信件数) 就可以解除这个问题。
--enable-servermode 全程使用 /var/mail/bobby 当作工作档案,可以避免 (a)、(b),
不过要更小心处理与其他程式 (如:openwebmail) 共用档案‧‧‧;
--disable-status 可以避免 (c)、(d),
这部份我测试是有点小问题,有时候还是会有 X-UIDL 跑出来。
--
※ 来源:‧杏林绿意 passion.tmu.edu.tw‧[FROM: 10.1.1.215]