企业级开源邮件系统搭建的全过程
企业级开源邮件系统搭建的全过程:
前⾔:此过程为搭建企业⽤的邮件系统,在企业⾥邮件这种通信是必然存在的。当然可以选择微软的Exchange,但现在⼤部分企业线上跑的系统都是开源的,所以实现这种开源体系的邮件系统也是必然的。
好处:
1.开源,就是意味着免费
2.⾃由,就是可以随意利⽤组件来实现想要的功能
3.⽅便,就是随便台机器装个开源的linux就是部署
4.维护需要专门的⼈员(此为⼀点⼩弊端,不像购买微软的Exchange,可以买服务)
实现所需组件:Postfix+dovecot+Cyrus SASL+squirrelmail
⼀、平台构建
⾸先就是LAMP平台的部署,其实除开Mysql是必须的之外,像Apache假如不⽤webmail的话就不⽤装,Php也是为了⽀持web页⾯的,但在此是为了搭建个满⾜⼤部分企业的需求,所以都安装了。以下都是采⽤的源码⽅式安装,也可直接yum装。
1.1 Apache的安装:
01. #tar -zxf httpd-2.2. -C /usr/local/src
02. #cd /usr/local/src/httpd-2.2.9
03. #./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
04. #make
05. #make install
1.2 Mysql的安装:
01. ⾸先安装软件:
02. #useradd -M -s /sbin/nologin mysql
03. #tar zxf mysql-5.0. -C /usr/local/src
04. #cd /usr/local/src/mysql-5.0.56
05. #./configure --prefix=/usr/local/mysql
06. #make
07. #make install
08. 安装后配置:
09. #cd /usr/local/src/mysql-5.0.56
10. #cp support-files/my-mediumf /etc/myf #复制主配⽂件(中等数据库规模)
11. #/usr/local/mysql/bin/mysql_install_db --user=mysql #初始化
12.
13. #chown -R root:mysql /usr/local/mysql
14. #chown -R mysql /usr/local/mysql/var
15.
16. #echo "/usr/local/mysql/lib/mysql" >> /etc/f #添加库⽂件路径
17. #ldconfig #刷新库⽂件搜索路径
18.
19. 启动
20. #/usr/local/mysql/bin/mysqld_safe --user=mysql & #后台安全启动
21.
22. #cd /usr/local/src/mysql-5.0.56
23. #cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本
24. #chmod +x /etc/init.d/mysqld
25. #chkconfig --add mysqld #添加到系统⾃启动服务中
26. #chkconfig mysqld on
27. #echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #设置系统全局的环境变
量 PATH 值,⽅便使⽤ Mysql 数据库命令
1.3 PHP 软件
01. 安装软件:
02. #tar jxf php-5.2.6.tar.bz2 -C /usr/local/src
03. #cd /usr/local/src/php-5.2.6
04. #./configure --prefix=/usr/local/php5 --enable-mbstring \
05. --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql \
06. --with-config-file-path=/usr/local/php5
07. #make
08. #make test
09. #make install
10. 安装后配置:
11. #cd /usr/local/src/php-5.2.6
12. #cp php.ini-dist /usr/local/php5/php.ini #复制配置⽂件
13.
14. #vi /usr/local/apache2/f #修改 Apache 服务的主配置⽂件
15. LoadModule php5_module modules/libphp5.so 确认这⾏的存在(否则重新编译安装apache)
16. AddType application/x-httpd-php .php #添加这⾏记录
17. DirectoryIndex index.php index.html #在这⾏添加关于 php 格式的⾸页
1.4 测试
Apache 测试
#vi /usr/local/apache2/htdocs/test.php
01. <?php
02. phpinfo();
03. ?>
01. <?php
02. $link=mysql_connect ('locahost' ,'test',' ' );
03. if (!$link) echo "Fail ";
04. else echo "Success ";
05. mysql_close( );
06. ?>
下⾯是正式关于邮件系统的组件安装:
2.Postfix(核⼼组件,提供发信)
2.1 停⽌系统⾃带的 sendmail 软件
#service sendmail stop
#chkconfig --level 35 sendmail off
2.2 编译安装 postfix 软件
01. #groupadd -g 1200 postdrop
02. #groupadd -g 1000 postfix
03. #useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix #不创建宿主⽬录附属组
04. 安装软件:
05. #tar zxf postfix-2.4. -C /usr/local/src
06. #cp postfix-2.4. /usr/local/src #补丁⽂件,⽤以⽀持虚拟⽤户设置配额
07. #cd /usr/local/src
08. #gunzip postfix-2.4.
09. #cd postfix-2.4.6
10. #patch -p1 <..../postfix-2.4.6-vda-ng.patch #打补丁
11. #make makefiles \
12. 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH \
13. -DUSE_CYRUS_SASL -I/usr/include/sasl' \
14. 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2'
15. #make
16. #make install
备注:安装过程会出现互动提问,直接使⽤默认设置即可。
三、Postfix 相关配置
3.1 ⽬录结构:
/etc/postfix ⼯作⽬录
/usr/libexec/postfix 服务器程序⽂件
/var/spool/postfix 邮件队列⽬录
incoming 刚接收到的邮件
active 正在投递的邮件
deferred 以前投递失败的邮件
hold 被阻⽌发送的邮件
corrupt 不可读或者不可分析的邮件
/usr/sbin 该⽬录下有以下⼀些管理⼯具程序
postalias 构建、修改、查询别名表
postconf 显⽰、编辑 main.cf 配置⽂件
postfix 启动、停⽌服务
postmap 构造、修改、查询表
postqueue 管理邮件队列,普通⽤户使⽤
postsuper 管理邮件队列,root ⽤户使⽤
3.2 配置⽂件:
/etc/postfix/main.cf 是 postfix 服务的配置⽂件
/
etc/postfix/master.cf 是 master 程序的配置⽂件
命令:#postconf 查看当前 postfix 服务所使⽤的配置参数
#postconf -n 查看不同于默认值的配置参数
常规操作:
#postconf -n > main2.cf 只保留与默认值不同的参数,以提⾼可读性
#mv main.cf main.cf.bak 将原有配置⽂件改名备份
#mv main2.cf main.cf
3.3 主配⽂件修改:
#vi /etc/postfix/main.cf
01. inet_interfaces = 192.168.4.1,127.0.0.1 #监听的 ip 地址,默认值为 all
02. myhostname = #主机名
03. mydomain = xt #邮件域名
04. myorigin = $mydomain #外发邮件时发件⼈地址中的邮件域名
05. mydestination = $mydomain,$myhostname #可接收的邮件地址中的域名
06. home_mailbox = Maildir/ #邮件存储位置和格式
07. 常⽤命令:
08. #postfix start #启动
09. #postfix check #检查配置
10. #postfix stop #停⽌
11. #postfix reload #重新加载配置
3.4 SMTP 发送邮件测试:
邮件本地账户管理
mysql配置与安装过程#groupadd mailusers
#useradd -g mailusers -s /sbin/nologin terry
#useradd -g mailusers -s /sbin/nologin shrek
#passwd terry
#passwd shrek #新建本机⽤户⽤来发信测试
SMTP 发送邮件测试
#telnet localhost 25
helo localhost
mail from:
rcpt to:
data
subject: this is a test mail.
test
. #点表⽰结束,并发送
查看收到的邮件
cat /home/shrek/Maildir/new/ #ID为⾃动⽣成四、Dovecot 邮局软件 (提供 pop3 / imap4 协议)
01. 4.1 安装软件:
02. #useradd -M -s /sbin/nologin dovecot #保证安全性,可不给shell环境
03. #tar zxf dovecot-1.1. -C /usr/local/src
04. #cd /usr/local/src/dovecot-1.1.4
05. #./configure --sysconfdir=/etc --with-mysql
06. #make
07. #make install
08. 4.2 安装后配置:
09. #cp /f /f #复制产⽣主配⽂件
10. #vi /f
11. ssl_disable = yes #禁⽤ SSL 机制
12. protocols = pop3 imap #指定邮局协议
13. disable_plaintext_auth = no #允许明⽂密码认证
14. mail_location = maildir:~/Maildir #设置邮件存储格式和位置
15.
16. #vi /etc/pam.d/dovecot 创建 pam 认证⽂件
17. auth required pam_nologin.so
18. auth include system-auth
19. account include system-auth
20. session include system-auth
21.
22. #/usr/local/sbin/dovecot -c /f #启动
23.
24. 4.3 POP3 邮件接收测试
25. #telnet localhost 110 #110为pop⽅式收信端⼝
26. user shrek #使⽤shrek⾝份认证
27. pass 123pwd #密码
28. list #列出信件列表
29. retr 1 #读取编号1的信件
五、Webmail 软件(不是必须的,可为⽤户提供web页⾯收发邮件)
5.1 squirrelmail 安装:#这⾥⽤的外国的⼀个⼩软件,也可以⽤国内做的⽐较好的webmail,如:extmail等
01. #tar jxf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs
02. #cd /usr/local/apache2/htdocs/
03. #mv squirrelmail-1.4.13 webmail
04. #cd webmail
05. #tar -jxf zh_CH-1.4. -C /usr/local/apache2/htdocs/webmail 解压软件
06.
07. 5.2 配置
08. #cd /usr/local/apache2/htdocs/webmail
09. #mkdir -p attach data
10. #chown -R daemon:daemon attach/ data/
11. #chmod 730 attach/
12. #cp config/config_default.php config/config.php
13. 创建配置⽂件
14. #vi config/config.php
15. $squirrelmail_default_language = 'zh_CN';#改成中⽂集
16. $default_charset = 'zh_CN.UTF-8';
17. $domain = 'xt';
18. $smtpServerAddress = 'localhost'; #设置发信服务器地址
19. $smtpPort = 25; #设置发信服务器端⼝
20. $imap_server_type = 'dovecot'; #设置收信服务器软件
21. $imapPort = 143; #设置收信服务器端⼝
22. $data_dir = '/usr/local/apache2/htdocs/webmail/data/ ';
23. $attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/ ';
24. #/usr/local/apache2/bin/apachectl restart 重启 apache 服务
六、SMTP ⽤户认证(现在⼤部分邮箱都要求smtp认证,防⽌冒充别⼈发送邮件)
6.1 所需软件
cyrus-sasl-plain
cyrus-sasl-devel
cyrus-sasl-lib
syrus-sasl #RHEL5默认安装
6.2 设置 Cyrus SASL 函数库
#cp /usr/lib/f /usr/lib/f
#vi /usr/lib/f
pwcheck_method: saslauthd
#service saslauthd start
#chkconfig --level 35 saslauthd on
6.3 修改 postfix 服务主配置⽂件
#vim /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes #启⽤SMTP认证
smtpd_sasl_security_options = noanonymous #禁⽤匿名登录
mynetworks = 127.0.0.1
smtpd_recipient_resrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destionation 解释:设置收件⼈地址过滤规则从上到下逐⼀匹配,符合即停⽌
允许ip为mynetworks的客户使⽤本邮件系统投递邮件
允许通过SMTP认证的⽤户向外发送邮件
当收件⼈地址不包括在postfix的授权⽹络内时拒绝发送该邮件
6.4 SMTP 发信认证测试
#printf "shrek" |openssl base64 #⽣成加密字符串
c2hyZWS
#printf "123pwd" |openssl base64
MTIzcXdI
# 25
auth login #认证登录
c2hyZWS #加密后的⽤户名
MTIzcXdI #加密后的密码
mail from:
rept to:
data
subject: test
this is a test mail!
. #以点表⽰结束
7. 邮件发设置
#vi /etc/postfix/main.cf
alias_maps = bash:/etc/aliases
#vi /etc/aliases
teacher:shrek,terry
#newaliases
此时发给的邮件会发给和
8. 设置邮件⼤⼩
默认提供了 10M 的邮件⼤⼩
#vi /etc/postfix/main.cf
01. message_size_limit = 20971520 #设置为 20M 邮件⼤⼩
02. #该设置对于系统⽤户和虚拟⽤户都⽣效
03. 限制邮箱⼤⼩的参数和⽅法:
04. mailbox_size_limit #针对 Mailbox 邮件存储⽅式的情况,默认限制为 50M
05. #只对系统⽤户⽣效
06. virtual_mailbox_limit #针对虚拟⽤户,默认限制 50M
07. #安装 VDA 补丁后,可以对使⽤ Mailbox 或 Maildir 存储⽅式的⽤户⽣效
08. quota #磁盘配额,针对 Linux 系统账户
09. #对 Mailbox 和 Maildir 存储⽅式的⽤户都⽣效
好了,就先到这⾥了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论