文档章节

邮件服务器搭建

Sirv
 Sirv
发布于 2015/06/30 12:50
字数 1320
阅读 40
收藏 0

一、安装前的准备工作

1.关闭防火墙与SELinux

service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off

vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

reboot


2.修改主机名

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.free.com


3.下载并安装yum源

(1).下载163的yum源到当前目录

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo


(2).下载rpmforge

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm


(3).备份原有的yum源

mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/backup


(4). 增加新的yum源

cp CentOS6-Base-163.repo /etc/yum.repos.d/
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm


(5).清理yum缓存并更新系统

yum clean all
yum update & yum makecache


4.创建一个vmail用户,用作管理虚拟邮箱的文件夹

useradd –u 2000 –d /var/vmail –m –s /sbin/nologin vmail



二、安装并配置LAMP环境

PostfixAdmin2.3.6+Roundcubemail0.92的PHP环境要求最低PHP5.2,此处安装的是5.3.3。

简易安装LAMP环境[如果采用其它方式安装切记要安装imap扩展]

yum -y install httpd mysql mysql-devel mysql-server php php-pecl-Fileinfo php-mcrypt php-devel php-mysql php-common php-mbstring php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc pcre pcre-devel


整合Apache与PHP

vim /etc/httpd/conf/httpd.conf
#增加下面现行
AddType application/x-httpd-php .php #apache解析php程序
PHPIniDir "/etc/php.ini" #指定php.ini配置文件路径
#增加一行[也可指定虚拟域名,不然重启httpd会有警告]
ServerName localhost:80


#修改这一行增加index.php
DirectoryIndex index.php index.html index.html.var
#修改apache运行的用户和组
User vmail
Group vmail


service httpd restart
chkconfig httpd on
chkconfig httpd –list
httpd           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭


测试phpinfo

vim /var/www/html/phpinfo.php

输入

<?php
phpinfo();


查看是否配置正确,重点看一看imap扩展和session,注意session存放目录权限



二、安装并配置postfixadmin

  1. 1.上传所需源码postfixadmin-2.3.6.tar.gz /var/www/html,解压,改名

cd /var/www/html

tar –zxvf postfixadmin-2.3.6.tar.gz

mv postfixadmin-2.3.6 postfixadmin

  1. 2.配置并测试

cd postfixadmin/

cp config.inc.php config.inc.php.bk

cp setup.php setup.php.bk

vim config.inc.php

#找到下面几行并修改

$CONF['configured'] = true;

$CONF['database_type'] = 'mysql';

$CONF['database_host'] = 'localhost';

$CONF['database_user'] = 'postfix';

$CONF['database_password'] = 'postfix';

$CONF['database_name'] = 'postfix';

$CONF['admin_email'] = 'postmaster@free.com';

$CONF['encrypt'] = 'dovecot:CRAM-MD5';

$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

$CONF['domain_path'] = 'YES';

$CONF['domain_in_mailbox'] = 'NO';

$CONF['aliases'] = '1000';

$CONF['mailboxes'] = '1000';

$CONF['maxquota'] = '1000';

$CONF['fetchmail'] = 'NO';

$CONF['quota'] = 'YES';

$CONF['used_quotas'] = 'YES';

$CONF['new_quota_table'] = 'YES';

 

  1. 2. postfixadmin创建Mysql数据库与权限

       service mysqld start

chkconfig mysqld on

chkconfig mysqld –list

mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

mysql

create database postfix;

grant all on postfix.* to postfix@'localhost' identified by 'postfix';

flush privileges;

quit;

 

mysql -upostfix –p

postfix

show databases;

 

3.修改所有者与所有组

chown -R vmail.vmail postfixadmin/

4.具体配置过程如下图

(1).http://192.168.1.121/postfixadmin/setup.php

注:检查PHP环境,并初始化数据库

(2).创建设置密码并修改配置文件(我这里的密码是123456


vim config.inc.php

$CONF['setup_password'] = '6471f6462d427bf547c07fb2a08fdecf:09a43f1679223

4050d298b7d0333c101d4bbd48e';

(3).创建管理员密码

先输入你刚才设置的密码,我这里是123456,然后输入管理员邮箱,管理员密码!

出现错误,说没有dovecotpw,是因为我们还没安装dovecot,我们这里先来安装一下dovecot,后面再进行配置!

yum install -y  dovecot dovecot-devel dovecot-mysql

chkconfig dovecot on

chkconfig dovecot –list

dovecot         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

我们再来设置一下管理员的账户与密码,(我这里设置是postmaster@free.com密码:123456

成功后登录

http://192.168.1.121/postfixadmin/login.php

4.postfxiadmin不能自动创建目录,所以我们得增加自动建立目录的功能

(1).建立创建虚拟邮箱脚本,脚本名称 /usr/local/bin/maildir-creation.sh,脚本内容如下:

[root@mail ~]#vim /usr/local/bin/maildir-creation.sh

#!/bin/bash

#

HOME_DIR="/var/vmail"

USER_NAME="vmail"

GROUP_NAME="vmail"

if [ ! -d ${HOME_DIR}/$1 ] ; then

    mkdir ${HOME_DIR}/$1

    chown -R ${USER_NAME}.${GROUP_NAME} ${HOME_DIR}/$1

fi

mkdir ${HOME_DIR}/$1/$2

chown -R ${USER_NAME}.${GROUP_NAME} ${HOME_DIR}/$1/$2

(2).建立删除虚拟邮箱脚本,脚本名称 /usr/local/bin/maildir-deletion.sh ,脚本内容如下:

[root@mail ~]#vim /usr/local/bin/maildir-deletion.sh

#!/bin/bash

#

# vmta ALL = NOPASSWD: /usr/local/bin/maildir-deletion.sh

#

if [ $# -ne 2 ] ; then

  exit 127

fi

DOMAIN="$1"

USER="$2"

HOME_DIR="/var/vmail"

USER_DIR="${HOME_DIR}/${DOMAIN}/${USER}"

TRASH_DIR="${HOME_DIR}/deleted-maildirs"

DATE=`date "+%Y%m%d_%H%M%S"`

if [ ! -d "${TRASH_DIR}/${DOMAIN}" ] ; then

    mkdir -p "${TRASH_DIR}/${DOMAIN}"

fi

if [ -d "${USER_DIR}" ] ; then

    mv ${USER_DIR} ${TRASH_DIR}/${DOMAIN}/${USER}-${DATE}

fi

 

5.建立删除目录 

[root@mail ~]# mkdir /var/vmail/deleted-maildirs

[root@mail ~]# chown -R vmail.vmail /var/vmail/deleted-maildirs/

 

6.赋予脚本可执行权限 

[root@mail ~]# chmod 750 /usr/local/bin/maildir-*

[root@mail ~]# chown vmail.vmail /usr/local/bin/maildir-*

 

7.配置sudo

[root@mail ~]#vim /etc/sudoers

#在 /etc/sudoers 最后增加两行

vmail ALL = NOPASSWD: /usr/local/bin/maildir-creation.sh

vmail ALL = NOPASSWD: /usr/local/bin/maildir-deletion.sh

#在/etc/sudoers 注释掉下面内容

#Defaults    requiretty

:wq! #由于这个文件是只读的,所以得强制保存并退出

 

8.修改postfixadmin的相关文件

[root@mail ~]# cd /var/www/html/postfixadmin/

[root@mail postfixadmin]# vim create-mailbox.php

修改create-mailbox.php 文件,229行内容应该是:

db_log ($SESSID_USERNAME, $fDomain, 'create_mailbox', "$fUsername");

在该行前面增加下面一行,

system("sudo /usr/local/bin/maildir-creation.sh $fDomain ".$_POST['fUsername']);

[root@mail postfixadmin]# vim delete.php

修改delete.php 文件,146行内容应该是,

db_log ($SESSID_USERNAME, $fDomain, 'delete_mailbox', $fDelete);

在该行下面增加下面4行,

$userarray=explode("@",$fDelete);

$user=$userarray[0];

$domain=$userarray[1];

system("sudo /usr/local/bin/maildir-deletion.sh $domain $user");

 

postfixadmin配置全部完成


参考链接:http://freeloda.blog.51cto.com/2033581/1245492



© 著作权归作者所有

共有 人打赏支持
上一篇: CentOS - 搭建yum源
下一篇: 镜像站
Sirv
粉丝 2
博文 10
码字总数 2533
作品 0
朝阳
私信 提问
一个系统一天要发送2万封邮件?有没有什么好的快速解决方案

目前的线上系统,需要发送邮件通知,一天可能要发2万封邮件。 本来想使用QQ企业邮箱,但是发现每天600封邮件就被屏蔽了? 如果想要发送2W封邮件,是不是只能自己搭建邮件服务器了? 有没有类...

lifeidgp
2013/05/18
2.8K
14
如何在Linux上搭建邮件服务器?

今天看到Dovecot有更新的新闻,也看到原来OSChina 的邮件服务器就是使用 Dovecot 搭建的,请红薯老大谈谈是如何搭建一个完整的邮件服务器,搭建邮件服务器所需要的功能组件及软件包等,谢谢了...

SudyX
2010/07/01
2.7K
8
zabbix使用msmtp&&mutt搭建邮件告警服务

zabbix使用msmtp&&mutt搭建邮件告警服务 zabbix可以通过脚本和邮件服务器搭建邮件告警服务,以下就是告警服务实现的流程图 关注点一: 脚本需要放在zabbix安装目录下../share/zabbix/alertsc...

热带冠头鱼
2017/09/01
0
0
企业邮件系统的发展和变化

企业邮件系统的发展和变化 以往的大型企业邮件系统主要是采用分布式搭建,表现为各个站点都有自身的邮件服务器,大概可以支持300-500个邮箱使用,这种构建方式相对而言,成本较低,维护风险较...

zhaiken
2012/04/04
0
0
PHPMailer用163邮箱发送成功后能同步到服务器,但自己搭建的邮箱能发成功,但同步不到服务器

网站注册时用PHPMailer发邮件,用163的邮箱发送成功后能同步到163的已发邮件下,可用自己postfix+dovecot+maildrop+extmail搭建的邮箱能发成功,但就是同步不到服务器上的已发邮箱下。但自己搭...

杨明明02
2016/06/12
413
0

没有更多内容

加载失败,请刷新页面

加载更多

nacos之springboot

本地操作系统:ubuntu18,我使用docker的方式启动nacos服务 docker image方式启动nacos 在docker hub上可以搜到nacos-server List-1.1 拉去最新的版本 mjduan@mjduan-ubuntu:/opt/software$ ...

克虏伯
23分钟前
2
0
指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
55分钟前
3
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
今天
2
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
今天
2
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部