企业级开源邮件系统搭建的全过程

企业级开源邮件系统搭建的全过程:

前言:此过程为搭建企业用的邮件系统,在企业里邮件这种通信是必然存在的。当然可以选择微软的Exchange,但现在大部分企业线上跑的系统都是开源的,所以实现这种开源体系的邮件系统也是必然的。

好处:
1.开源,就是意味着免费

2.自由,就是可以随意利用组件来实现想要的功能

3.方便,就是随便找台机器装个开源的linux就是部署

4.维护需要专门的人员(此为一点小弊端,不像购买微软的Exchange,可以买服务)

实现所需组件:Postfix+dovecot+Cyrus SASL+squirrelmail
一、平台构建

首先就是LAMP平台的部署,其实除开Mysql是必须的之外,像Apache假如不用webmail的话就不用装,Php也是为了支持web页面的,但在此是为了搭建个满足大部分企业的需求,所以都安装了。以下都是采用的源码方式安装,也可直接yum装。

1.1 Apache的安装:

#tar -zxf httpd-2.2.9.tar.gz -C /usr/local/src #cd /usr/local/src/httpd-2.2.9 #./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite #make #make install

1.2 Mysql的安装:

首先安装软件: #useradd -M -s /sbin/nologin mysql #tar zxf mysql-5.0.56.tar.gz -C /usr/local/src #cd /usr/local/src/mysql-5.0.56 #./configure --prefix=/usr/local/mysql #make #make install 安装后配置: #cd /usr/local/src/mysql-5.0.56 #cp support-files/my-medium.cnf /etc/my.cnf           #复制主配文件(中等数据库规模) #/usr/local/mysql/bin/mysql_install_db --user=mysql   #初始化  #chown -R root:mysql /usr/local/mysql #chown -R mysql /usr/local/mysql/var  #echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf #添加库文件路径 #ldconfig                                             #刷新库文件搜索路径  启动 #/usr/local/mysql/bin/mysqld_safe --user=mysql &      #后台安全启动  #cd /usr/local/src/mysql-5.0.56 #cp support-files/mysql.server /etc/init.d/mysqld     #复制启动脚本 #chmod +x /etc/init.d/mysqld #chkconfig --add mysqld                               #添加到系统自启动服务中 #chkconfig mysqld on #echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #设置系统全局的环境变量 PATH 值,方便使用 Mysql 数据库命令

1.3 PHP 软件

安装软件: #tar jxf php-5.2.6.tar.bz2 -C /usr/local/src #cd /usr/local/src/php-5.2.6 #./configure --prefix=/usr/local/php5 --enable-mbstring \ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql \ --with-config-file-path=/usr/local/php5 #make #make test #make install 安装后配置: #cd /usr/local/src/php-5.2.6 #cp php.ini-dist /usr/local/php5/php.ini #复制配置文件  #vi /usr/local/apache2/conf/httpd.conf   #修改 Apache 服务的主配置文件 LoadModule php5_module modules/libphp5.so 确认这行的存在(否则重新编译安装apache) AddType application/x-httpd-php .php     #添加这行记录 DirectoryIndex index.php index.html      #在这行添加关于 php 格式的首页

1.4 测试
Apache 测试
#vi /usr/local/apache2/htdocs/test.php

<?php phpinfo(); ?>

IE 浏览器中输入网址 http://ip/test.php
看到页面为php环境信息表示跟 Apache 服务整合成功!!!
Mysql 测试
#vi /usr/local/apache2/htdocs/testdb.php

<?php $link=mysql_connect (‘locahost‘ ,‘test‘,‘ ‘ ); if (!$link) echo "Fail !!!"; else echo "Success !!!"; mysql_close( ); ?>

IE 浏览器中输入网址 http://ip/testdb.php
看到“Success!!!”字样表示跟 Mysql 服务整合成功!!!
 
二、Postfix 软件安装

下面是正式关于邮件系统的组件安装:

2.Postfix(核心组件,提供发信)
2.1 停止系统自带的 sendmail 软件
#service sendmail stop
#chkconfig --level 35 sendmail off
2.2 编译安装 postfix 软件

#groupadd -g 1200 postdrop #groupadd -g 1000 postfix #useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix  #不创建宿主目录附属组 安装软件: #tar zxf postfix-2.4.6.tar.gz -C /usr/local/src #cp postfix-2.4.6-vda-ng.path.gz /usr/local/src  #补丁文件,用以支持虚拟用户设置配额 #cd /usr/local/src #gunzip postfix-2.4.6-vda-ng.path.gz #cd postfix-2.4.6 #patch -p1 < ..../postfix-2.4.6-vda-ng.patch    #打补丁 #make makefiles \ ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH \ -DUSE_CYRUS_SASL -I/usr/include/sasl‘ \ ‘AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2‘ #make #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

inet_interfaces = 192.168.4.1,127.0.0.1   #监听的 ip 地址,默认值为 all myhostname = mail.xt.com                   #主机名 mydomain = xt.com                          #邮件域名 myorigin = $mydomain                       #外发邮件时发件人地址中的邮件域名 mydestination = $mydomain,$myhostname     #可接收的邮件地址中的域名 home_mailbox = Maildir/                    #邮件存储位置和格式 常用命令: #postfix start            #启动 #postfix check            #检查配置 #postfix stop             #停止 #postfix reload           #重新加载配置

3.4 SMTP 发送邮件测试:
邮件本地账户管理
#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: [email protected]
 rcpt to: [email protected]
 data
 subject: this is a test mail.
 test
 .               #点表示结束,并发送
查看收到的邮件
cat /home/shrek/Maildir/new/518957843753285739.mail.xt.com  #ID为自动生成

四、Dovecot 邮局软件 (提供 pop3 / imap4 协议)

4.1 安装软件: #useradd -M -s /sbin/nologin dovecot            #保证安全性,可不给shell环境 #tar zxf dovecot-1.1.4.tar.gz -C /usr/local/src #cd /usr/local/src/dovecot-1.1.4 #./configure --sysconfdir=/etc --with-mysql #make #make install 4.2 安装后配置: #cp /etc/dovecot-example.conf /etc/dovecot.conf #复制产生主配文件 #vi /etc/dovecot.conf ssl_disable = yes                  #禁用 SSL 机制 protocols = pop3 imap              #指定邮局协议 disable_plaintext_auth = no        #允许明文密码认证 mail_location = maildir:~/Maildir  #设置邮件存储格式和位置  #vi /etc/pam.d/dovecot 创建 pam 认证文件 auth required   pam_nologin.so auth include    system-auth account include system-auth session include system-auth  #/usr/local/sbin/dovecot -c /etc/dovecot.conf #启动  4.3 POP3 邮件接收测试 #telnet localhost 110   #110为pop方式收信端口  user shrek             #使用shrek身份认证  pass 123pwd            #密码  list                   #列出信件列表  retr 1                 #读取编号1的信件

五、Webmail 软件(不是必须的,可为用户提供web页面收发邮件)
5.1 squirrelmail 安装:#这里用的外国的一个小软件,也可以用国内做的比较好的webmail,如:extmail等

#tar jxf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs #cd /usr/local/apache2/htdocs/ #mv squirrelmail-1.4.13 webmail #cd webmail #tar -jxf zh_CH-1.4.13.tar.gz -C /usr/local/apache2/htdocs/webmail 解压汉化软件   5.2 配置 #cd /usr/local/apache2/htdocs/webmail #mkdir -p attach data #chown -R daemon:daemon attach/ data/ #chmod 730 attach/ #cp config/config_default.php config/config.php 创建配置文件 #vi config/config.php $squirrelmail_default_language = ‘zh_CN‘;#改成中文集 $default_charset = ‘zh_CN.UTF-8‘;              $domain = ‘xt.com‘; $smtpServerAddress = ‘localhost‘;        #设置发信服务器地址 $smtpPort = 25;                          #设置发信服务器端口 $imap_server_type = ‘dovecot‘;           #设置收信服务器软件 $imapPort = 143;                         #设置收信服务器端口 $data_dir = ‘/usr/local/apache2/htdocs/webmail/data/ ‘; $attachment_dir = ‘/usr/local/apache2/htdocs/webmail/attach/ ‘; #/usr/local/apache2/bin/apachectl restart 重启 apache 服务

客户端 IE 地址栏中输入 http://mail.xt.com/webmail
即可看见登录界面,登录进去即可正常收发邮件:

六、SMTP 用户认证(现在大部分邮箱都要求smtp认证,防止冒充别人发送邮件)
6.1 所需软件
cyrus-sasl-plain
cyrus-sasl-devel
cyrus-sasl-lib
syrus-sasl         #RHEL5默认安装

6.2 设置 Cyrus SASL 函数库
#cp /usr/lib/sasl2/Sendmail.conf /usr/lib/sasl2/smtpd.conf
#vi /usr/lib/sasl2/smtpd.conf
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
#telnet mail.xt.com 25
 auth login      #认证登录
 c2hyZWS         #加密后的用户名
 MTIzcXdI        #加密后的密码
 mail from: [email protected]
 rept to: [email protected]
 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
此时发给 [email protected] 的邮件会群发给 [email protected] 和[email protected]

8. 设置邮件大小
默认提供了 10M 的邮件大小
#vi /etc/postfix/main.cf

message_size_limit = 20971520    #设置为 20M 邮件大小                                  #该设置对于系统用户和虚拟用户都生效 限制邮箱大小的参数和方法: mailbox_size_limit               #针对 Mailbox 邮件存储方式的情况,默认限制为 50M                                  #只对系统用户生效 virtual_mailbox_limit            #针对虚拟用户,默认限制 50M                                  #安装 VDA 补丁后,可以对使用 Mailbox 或 Maildir 存储方式的用户生效 quota                            #磁盘配额,针对 Linux 系统账户                                  #对 Mailbox 和 Maildir 存储方式的用户都生效

好了,就先到这里了。

时间: 2024-10-08 03:48:48

企业级开源邮件系统搭建的全过程的相关文章

使用Apache Kylin搭建企业级开源大数据分析平台

使用Apache Kylin搭建企业级开源大数据分析平台 转:http://www.thebigdata.cn/JieJueFangAn/30143.html 我先做一个简单介绍我叫史少锋,我曾经在IBM.eBay做过大数据.云架构的开发,现在是Kyligence的技术合伙人. Kylin是这两年在国内发展非常快的开源大数据项目.今天大会合作厂商中有超过一半的企业已经在使用或者正在试用Kylin,应主办方邀请,今天跟大家做一个关于如何使用Kylin构建开源大数据分析平台的分享. 这是我今天的议程

企业级开源四层负载均衡解决方案--LVS

第1章 课程简介课程内容的概要介绍,包括需要具备的知识前提.课程内容.面向用户.课程的价值意义及学习目标 1-1 LVS导学视频1-2 LVS课程概述第2章 网络基础重点讲解网络核心基础知识,包括OSI七层模型.TCP四层模型.详解三次握手和四次挥手.数据包在服务器内部拆包解析全流程剖析.应用服务概念.iptables原理和常见命令编写 2-1 网络基础知识讲解2-2 OSI七层网络模型2-3 TCP/IP协议基础讲解2-4 TCP/IP四层模型2-5 iptables基础原理2-6 iptab

Nginx+ffmpeg的HLS开源server搭建配置及开发具体解释

本文概述: 至眼下为止.HLS 是移动平台上很重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 .真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋友,将方案实施中的一些细节和流程进行分享交流.本文介绍了.使用开源servernginx 搭建 HLS 服务比較具体的方案.測试使用 VLC以及JWPlayer播放. 切片器: HLS 是依照切片发送流媒体子块的,切片当然不可少. 编译和使用的命令例如以下,能够參考. 编译m3u8-segment 改

企业级LNMP实例搭建

企业级LNMP实例搭建(centos6) 阅读目录 1.1 部署LNMP架构说明 第2章 LNMP环境搭建步骤 2.1 部署linux系统 2.2 部署nginx网站服务 2.3 部署mysql数据库服务 2.4 部署php服务 2.5 nginx 与 php 建立连接关系 2.6 编辑php与mysql连通性测试文件,并进行测试 2.7 测试php与数据库连通性 2.8 下载部署wordpress博客程序 3.1 mysql数据库迁移 3.2 本地数据挂载到nfs共享储存 1.1 部署LNMP

MySQL—MMM高可用群集的搭建(全过程,纯干货~~)

本篇文章主要介绍搭建MMM方案以及MMM架构的原理.MMM方案不适用对数据一致性要求很高的业务.下面一起来学习学习. 先来看看具体的架构拓扑,如下: 其中, 角色 Hosts IP地址 应用属性 VIP master1 master 192.168.142.135 write 192.168.142.188 master2 backup 192.168.142.132 write|read 192.168.142.188 slave1 slave 192.168.142.136 read 192

利用开源软件搭建JAVA工程CI&CD自动化工具链

JAVA传统项目交付流程的问题 开发和运维间环境有明显差异 代码缺乏统一质量度量 客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上BUG修复 打造工具链 ● 源码管理Gitlab● 持续集成Jenkins● 代码扫描SonarQube● 接口测试PostMan+NewMan● 制品管理ArtifactoryOSS版本(仅支持Maven)● 自动部署Ansible GitLab安装 vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=

开源方案搭建可离线的精美矢量切片地图服务-7.Arcgis Pro企业级应用

1.前言 上篇讲.pbf字体库的时候说到我们使用的字体通过Arcgis Pro 生成,Arcgis Pro样式基于Mapbox做的矢量切片地图渲染.这篇主要讲一下Arcgis Pro矢量切片生成的的具体方法,可以看一下企业级的矢量切片地图对比我们使用Geoserver进行切片的优点. 2.Arcgis Pro介绍 Arcgis Pro是esri公司推出新版arcgis系列软件.企业级矢量切片地图服务应用是新版本中新增的核心功能.矢量切片是区别于传统版本的Arcgis Server地图服务的要点,

企业级开源监控软件zabbix

最快速的对一个开源软件有一定的认识和了解,最好的方法就是看官网介绍. ------付炜超 第一问:zabbix是什么? 答:Zabbix是专为监控的可用性和IT基础设施组件的性能极限的企业级软件,Zabbix是开源的,是在没有成本 第二问:zabbix可以干什么? 答:Zabbix它可以收集几乎无限的类型从网络数据.高性能实时监控意味着数以万计的服务器.虚拟机和网络设备可以同时监测.随着存储数据,可视化功能是可用的(概述.地图.图表.屏幕等),以及非常灵活的分析预警目的数据的方法. 第三问:为什

ASP.NET MVC企业级项目框架搭建实战

MVC项目搭建笔记---- 项目框架采用ASP.NET MVC+Entity Framwork+Spring.Net等技术搭建,搭建过程内容比较多,结合了抽象工厂的思想降低了三层之间的耦合,可以使用此套框架进行可扩展性要求高的企业级MVC项目开发.本框架的架构图如下: 第一步(创建分类文件夹): 创建5个文件夹.分别为UI,Model,BLL,DAL,Common,以便于将各模块分类整理. 第二步(项目类库的创建): 在UI文件夹创建ASP.NET MVC4项目模板选择基本. 在Model文件夹