POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到互联网上的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。本文将介绍如何使用开源软件Procmail和Qpopper,在Linux系统上配置一台可供大量用户使用的POP3服务器。
1、下载Procmail和Qpopper
Procmail可从http://www.procmail.org/procmail-3.21.tar.gz下载。
Qpopper可从http://www.eudora.com/qpopper_general/下载。
2、编译Qpopper
假设下载的文件放在/root
#cd /root
#tar xvfz qpopper4.0.3.tar.gz
#cd qpopper4.0.3
#./configure --enable-hash-spool=2
--enable-log-login
--enable-server-mode
--enable-fast-update
--enable-shy
--enable-spool-dir=/usr/mail
--enable-specialauth
注释:
--enable-specialauth 使用/etc/shadow 密码认证
--enable-hash-spool=2 使用二级hash结构
--enable-spool-dir=/usr/mail 则用户信箱文件为/usr/mail/j/e/jephe
--enable-log-login 记录下成功的POP3登录进入syslog
--enable-server-mode和--enable-fast-update
不要让qpopper在用户存取信箱时拷贝信箱文件到临时文件,减少磁盘I/O,增强性能。
--enable-shy让服务器响应时不要显示版本信息,增强安全性。
#make
#make install
编辑文件/etc/inetd.conf
在/etc/xinetd.d下创建文件pop3,包含下面的内容:
service pop3
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/lib/popper
server_args = qpopper -F -S -s -c -R -T120
port = 110
}
注释:
-F enable fast update
-S enable server mode (在用户对该服务器没有shell存取时做)
-s 打开LOG功能
-c 忽略用户名的大小写
-R 不对连接进来的IP地址做反向域名检查
-T 设定超时时间
这样设定之后,如果用户jephe收取信件时,则先锁定信箱文件/usr/mail/j/e/jephe创建锁文件.jephe.pop,检查信件数目,退时出更新状态,生成.jephe.cache文件。
否则正常模式下是先把/usr/mail/j/e/jephe拷贝成.jephe.pop,最后用户检查信箱完毕再拷贝回来,增加了I/O处理时间
如果不是redhat则在/etc/inetd.conf中注释以pop-3开头的行,然后在后面再添加下面的行: pop-3 stream tcp nowait.400 root /usr/local/sbin/popper -F -S -s -c -R -T120
nowait:400中的400是指每分钟最多可接受的连接请求数目
如果你在/etc/hosts.deny中设置了ALL:ALL,则要在/etc/hosts.allow中输入
popper:ALL
3、编译Procmail
假设下载的文件放在/root
#cd /root
#tar xvfz procmail-3.21.tar.gz
#cd procmail-3.21
#vi src/authenticate.c
改#define MAILSPOOLDIR行后面的/var/spool/mail为 "/usr/mail/" (这里用的是/usr/mail)
改#define MAILSPOOLHASH 后面的0 为 2 (用二级hash目录,改进服务器文件系统性能,特别是有大量用户时)
注:这样的话,如果用户的信箱为jephe@domain.com,则文件应存在
/usr/mail/j/e/jephe
#mv /var/spool/mail /var/spool/mail.bak
注:先换名这个目录,因为可能当编译时如果能找到该目录,则优先用该目录及hash层次结构,这样的话将存储用户邮件到文件/var/spool/mail/j/e/jephe.如果你就想用这个目录,就不用改上面的MAILSPOOLDIR行。
#make
#make install
#make install-suid
然后以root身份运行#procmail -v检查用户的邮件路径确认为/usr/mail/r/o/root。
4、创建POP3用户
你不需要为mail用户分配home目录,也不需要设置其主目录为/usr/mail/j/e (假定用户为jephe),用下面的命令创建用户。
#useradd jephe -c "Jephe Wu" -g mail -d /dev/null -s /bin/false
再可以写一个批命令用chpasswd给每个用户以同样的password.
1)首先用passwd为mailuser1设置密码,假定为"abc123",检查/etc/shadow中的密码。
2)创建一个新文件/tmp/password,每行包括一个用户名、密码 ,可从/etc/passwd用下面的命令取得。
cat /etc/passwd awk -F: '{print $1}' sed -e
's/$/:$$1$G22Plicn$r5.bSe0U7DbaHN7tCevTR\//g'
c. 然后运行chpasswd < /tmp/password
5、FAQ
编译qpopper后,仍需在命令行上使用-F -S参数以启动服务器模式和快速更新,请放-F在-S的前面。
【相关文章】
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||