《web-Mail服务的搭建》
首先是搭建后台服务:
下载下面2个软件包 extmail-1.2.tar.gz
extman-1.1.tar.gz
创建一个extsuite目录,固定格式 mkdir /var/www/extsuite
将2个压缩包解压到/var/www/extsuite/目录 tar zxf extman-1.1.tar.gz -C /var/www/extsuite/
tar zxf extmail-1.2.tar.gz -C /var/www/extsuite/
切换到/var/www/extsuite/ cd /var/www/extsuite/ 将2个压缩后的目录改名,原目录太长了。 mv extmail-1.2/ extmail
mv extman-1.1/ extman
cd extman 上面我们创建了一个extsuite目录,为什么非得是extsuite。因为下面一个文件webman.cf.default里面写的很多参数缺省的路径/var/www/extsuite/extman/这个路径。
cd extman/docs/
下面这个文件里面默认写了很多mail服务数据库的配置,将其直接导入。
mysql -uroot -predhat < extmail.sql
vim init.sql //将里面的加密密码改为名文密码
这个文件写了很多关于mail用户,邮箱,别名等服务在mysql服务写入的数据
mysql -uroot -predhat < init.sql
我们将/var/www/extsuite/extman/docs下三个关于mail的邮箱,域名,别名的文件cp到/etc/postfix目录下.
cp mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/
校验这三个文件是否正确:mysql:/etc/postfix这个必须绝对路径
postmap -q "support@extmail.org" mysql:/etc/postfix/mysql_virtual_alias_maps.cf
postmap -q "postmaster@extmail.org" mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
postmap -q "extmail.org" mysql:/etc/postfix/mysql_virtual_domains_maps.cf
查看一些postfix的参数,通过过滤获取关于vitual项 postconf -d | grep virtual 将其加入到postfix的主配置文件,使其自动读取。
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf
我们使用的是虚拟用户,当然也要创建一个虚拟用户。
useradd -u 800 -s /sbin/nologin vmail 将其参数写入main.cf文件,自动生效。
postconf -e virtual_gid_maps=static:800
postconf -e virtual_uid_maps=static:800
指定虚拟用户的mail存储位置。
postconf -e virtual_mailbox_base=/home/vmail/
postconf -e inet_interfaces=all //所有人可以使用mail服务
配置完后重启载入。
postfix reload 测试,发封邮件试试。 mail support@extmail.org
mailq cd /home/vmail/
搭建前台服务:
cd extmail/ 建立前台mail主配置文件
cp webmail.cf.default webmail.cf
vim INSTALL 查看帮助
将下面的行复制到Apache配置文件下
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.example.com
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
SuexecUserGroup vuser vgroup </VirtualHost>
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName mail.extmail.org //访问该目录的域名
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
SuexecUserGroup vmail vmail //有效用户和组
</VirtualHost>
192.168.2.249 mail.extmail.org //在浏览器客户端做个解析
/etc/init.d/httpd restart //重启apache服务
cd /var/www/extsuite/ //默认这些文件任何人都可以使用,但我们服务是以vmail用户身份去访问下面的文件
chown -R vmail.vmail *
yum install perl-CGI //再次刷新发现服务不支持CGI模块
vim webmail.cf
SYS_LOG_ON = 0 //关闭日志功能
SYS_MAILDIR_BASE = /home/vmail //将主配置文件收邮件的目录修改成我们默认的路径
SYS_CRYPT_TYPE = plain //使用明文密码
SYS_MYSQL_USER = extmail //修改登录mysql数据库所使用的用户和密码 SYS_MYSQL_PASS = extmail
用户注册的实现: cd extman/
vim INSTALL
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.example.com
DocumentRoot /path/to/your/document/root/
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vuser vgroup
</VirtualHost>
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
<VirtualHost *:80>
ServerName mail.extmail.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vmail vmail
</VirtualHost>
/etc/init.d/httpd restart 浏览器测试 http://mail.extmail.org/extman/cgi/index.cgi
会提示没有主配置文件:
cp webman.cf.default webman.cf
修改邮件的有效用户
SYS_MAILDIR_BASE = /home/vmail
临时文件
SYS_SESS_DIR = /tmp/
关闭验证吗功能呢个
SYS_CAPTCHA_ON = 0
使用明文密码 SYS_CRYPT_TYPE = plain
# yum install -y perl-ExtUtils-MakeMaker perl Makefile.PL
# make install
SYS_CAPTCHA_ON = 1
SYS_CAPTCHA_LEN = 4 发现验证码显示不出来:
get perl-GD-2.45-1.el6.rfx.x86_64.rpm
# rpm -ivh perl-GD-2.45-1.el6.rfx.x86_64.rpm
/var/www/extsuite/extman/addon
# cp mailgraph_ext/ /usr/local/ -r
/usr/local/mailgraph_ext
# vim mailgraph-init
BASEDIR=/usr/local/mailgraph_ext
# ./mailgraph-init
# yum localinstall rrdtool-perl-1.3.8-6.el6.x86_64.rpm
# /usr/local/mailgraph_ext/mailgraph-init start
File-Tail-0.99.3.tar.gz
# tar zxf File-Tail-0.99.3.tar.gz
cd File-Tail-0.99.3 # perl Makefile.PL
# yum install perl-Time-HiRes -y
# make install
# /usr/local/mailgraph_ext/mailgraph-init start
/var/www/extsuite/extman/daemon/cmdserver &
vim /etc/rc.d/rc.local
/var/www/extsuite/extman/daemon/cmdserver &
/usr/local/mailgraph_ext/mailgraph-init start
取消自由注册:
cd extmail/
vim webmail.cf
SYS_SHOW_SIGNUP = 0
yum search dovecot
yum search dovecot-mysql.x86_64 -y 主配置文件不变。
vim 10-mail.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir
first_valid_uid = 800
vim 10-auth.conf
!include auth-sql.conf.ext passdb { driver = sql 找到下面的行,提示我们去找这个文件,example-config/dovecot-sql.conf.ext
下面的是路径/usr/share/doc/dovecot-2.0.9/example-config,这个文件只是一个模板。
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext args = /etc/dovecot/dovecot-sql.conf.ext }
我们将其cp到/etc/dovecot路径下,
并修改以下参数。
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = PLAIN
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u' AND domain = '%d'
user_query = SELECT maildir, 800 AS uid, 800 AS gid FROM mailbox WHERE username = '%u'
豆腐块的证书制作: /etc/pki/tls/certs
证书的名字:dovecot.pem 将其分别拷贝到公钥和加密目录下。
cp dovecot.pem /etc/pki/dovecot/certs/
cp dovecot.pem /etc/pki/dovecot/private/
/etc/init.d/dovecot restart
重启就ok了。
下面是TLS和SASL证书模块和加密模块在mail服务中的添加。和msyql的加载一样:
yum install -y cyrus-sasl-devel yum install -y openssl-devel
# cd postfix-2.11.0 //切换到加压包的目录
/root/postfix-2.11.0/README_FILES //这个目录下的2个文件,less SASL_README less TLS_README 和mysql一块重新编译升级。
# make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib64 -lsasl2 -lcrypto'
make upgrade
《web-Mail服务的搭建》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- win10系统的简单优化
1.关闭自带杀毒软件Windows Defender操作简要:在gpedit.msc 组策略-计算机管理——>管理模板——>windows组件——>windows defender ...
- C# 处理Json
下面是JSON对象转换为字符串 public static string ToJson(object obj) { try { JavaScriptSerializer serializer = ne ...
- 面试题: !=!=未看12 略多 sql语句练习 非常 有用
JAVA面试总结 2015年03月25日 16:53:40 阅读数:4306 刚才看到的,先转载过来,没准以后用到…… 面试总结 2013年8月6日: 问题2:Hibernate的核心接口有哪些? ...
- JavaScript学习系列6 -- JavaScript中的垃圾回收(内存释放)
程序开发中,涉及到的内存生命周期基本是一样的,分为以下三步 1. 分配需要的内存 2. 使用分配到的内存 3. 释放其内存 ----什么时候释放内存,以及需要释放哪些变量的内存, 就是垃圾回收机 ...
- UVaLive 5031 Graph and Queries (Treap)
题意:初始时给出一个图,每个点有一个权值,三种操作:(1)删除某个边:(2)修改每个点的权值:(3)询问与节点x在一个连通分量中所有点的第K大的权值. 析:首先是要先离线,然后再倒着做,第一个操作就成 ...
- Django 之装饰器实现登录认证
def check_login(func): # 自定义登录验证装饰器 def warpper(request, *args, **kwargs): is_login = request.sessio ...
- HTML 表单 / HTML5 表单元素datalist
<form> 属性的列表: 属性 描述 accept-charset 规定在被提交表单中使用的字符集(默认:页面字符集). action 规定向何处提交表单的地址(URL)(提交页面). ...
- GoWeb开发_Iris框架讲解(四):Iris框架设置操作
路由组的使用 在实际开发中,我们通常都是按照模块进行开发,同一模块的不同接口url往往是最后的一级url不同,具有相同的前缀url.因此,我们期望在后台开发中,可以按照模块来进行处理我们的请求,对于这 ...
- Lotus Notes 学习笔记
这是一个学习关于如何使用Lotus Notes的Agent功能来实现自动化办公的学习笔记. 一. 介绍 Lotus Notes/Domino 是一个世界领先的企业级通讯.协同工作及Internet/I ...
- 解读人:闫克强,Metabolic and gut microbial characterization of obesity-prone mice under high-fat diet(高脂饮食下易胖倾向小鼠的代谢和肠道微生物菌群特征分析)
单位: 上海中医药大学 蚌埠医学院 上海交通大学附属第六人民医院 夏威夷大学癌症中心 第二军医大学 技术:非靶向代谢组学,16S rRNA测序技术 一. 概述: 本研究对小鼠进行高脂饮食,根据体重增长 ...