linux中搭建简单邮件服务器

linux中搭建简单邮件服务器

在rh5下默认是安装sendmail的,也就是说可以实现发信了,如果要实现在oe中接收信件,那就要安装相应的收件服务。这就介绍cyrus-imap来实现收信。Cyrus要自己安装。

可将Red Hat Enterprise Linux 5的第2和第3张安装光盘放入光驱,加载光驱后在光盘的Server目录下找到以下与cyrus-imapd服务相关的RPM包文件:

cyrus-imapd-perl-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-utils-2.3.7-1.1.el5.i386.rpm
db4-utils-4.3.29-9.fc6.i386.rpm
lm_sensors-2.10.0-3.1.i386.rpm
cyrus-imapd-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-devel-2.3.7-1.1.el5.i386.rpm

使用rpm –ivh 命令安装。

2.cyrus-imapd服务的基本配置

cyrus-imapd服务的配置文件有以下3个。

/etc/sysconfig/cyrus-imapd:用于启动cyrus-imapd服务的配置文件。

/etc/cyrus.conf:是cyrus-imapd服务的主要配置文件,其中包含该服务中各个组件(IMAP、POP3、sieve和NNTP等)的设置参数。

/etc/imapd.conf:是cyrus-imapd服务中的IMAP服务的配置文件。

默认情况下,这些配置文件已经基本设置好,只要启动cyrus-imapd服务,就可以同时提供POP和IMAP服务。使用以下命令启动cyrus等服务,将cyrus加入开机启动。

service saslauthd restart
service cyrus-imapd restart
service sendmail restart
service xinetd restart
chkconfig saslauthd on
chkconfig cyrus-imapd on
chkconfig sendmail on

在linux中新建一用户,例如系统维护用户 operator

#useradd operator

#passwd operator 设置口令。如test

别忘了在passwd文件中设置/etc/nologin 增加安全性。

配置cyrus口令

#passwd cyrus

进入cyrus管理工具

#/usr/bin/cyradm -u cyrus  localhost

创建operator的用户邮箱前面“user.”是前缀。

#cm user.operator

在cyradm管理命令行状态下,可以使用下面的命令为用户lbt在其邮件信箱下创建发件箱、垃圾箱和草稿箱等其他文件夹。

createmailbox user.lbt.Send
createmailbox user.lbt.Trash
createmailbox user.lbt.Drafts

在创建了用户信箱user.lbt后,想直接用deletemailbox命令来删除该邮箱,即使是管理员cyrus也无权(Permission denied)。要想删除它,必须先用下面的命令为管理员cyrus自己授予完全控制的权限(all)。然后用deletemailbox删除邮箱

setacl user.lbt cyrus all
localhost.localdomain> quit

你可以测试用户:
telnet localhost 110
the login:
user operator
pass test
You should see:
+OK Name is a valid mailbox
+OK Mailbox locked and ready

这就成功了。

你现在需要设置Sendmail收信,然后把信件发到cyrus。编辑配置文件:/etc/mail/sendmail.mc,在文件末尾增加一行:

dnl MAILER(smtp)dnl
dnl MAILER(procmail)dnl
define(`confLOCAL_MAILER', `cyrus')
MAILER(`cyrus')

如果你想让Sendmail除了本机,能从别的地址收信,把下面这行

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

改成:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

然后,执行:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

你需要重启Sendmail:
service sendmail restart

这时可以在oe中设置邮箱,账号用operator密码用test收取邮件,可以编一些脚本用来查看系统状态,同时将发给root的邮件转发给operator,在crontab中设一下每天早8:30发送,这样每天上班可以通过oe查看系统状态,而不需一台台登陆服务器查看系统状态了。方便了许多。
谢谢楼主,学习了!!!
谢谢