RHEL5+postfix+mysql+extmai(源代码)续

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

十五、安装extmaiWebmail软件

http://www.extmail.org/

#tar zxvf extmail-1.0.5.tar.gz
#mkdir -pv /var/www/extsuite
#mv extmail-1.0.5 /var/www/extsuite/extmail
#cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf

#vim /var/www/extsuite/extmail/webmail.cf
部分修改选项的说明:
SYS_MESSAGE_SIZE_LIMIT = 5242880
用户可以发送的最大邮件
SYS_USER_LANG = en_US
语言选项,可改作:
SYS_USER_LANG = zh_CN
SYS_MAILDIR_BASE = /home/domains
此处即为您在前文所设置的用户邮件的存放目录,可改作:
SYS_MAILDIR_BASE = /var/mailbox/
SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为:
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail

SYS_MYSQL_HOST = localhost
指明数据库服务器主机名,这里默认即可
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
连接数据库的sock文件位置,这里修改为:
SYS_MYSQL_SOCKET = /tmp/mysql.sock
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即可
SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
此句用来指明authdaemo socket文件的位置,这里修改为:
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket

#vim /etc/httpd/httpd.conf

文件最后添加下面内容

<VirtualHost *:80>

ServerName mail.test.com

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

SuexecUserGroup postfix postfix

</VirtualHost>

chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

解决依赖关系

#tar zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src/

#cd /usr/local/src/Unix-Syslog-1.1/

perl Makefile.PL
# make
make install

#tar -zxvf DBI-1.58.tar.gz -C /usr/local/src/

#cd /usr/local/src/DBI-1.58/

# perl Makefile.PL
make
# make install

# tar -zxvf DBD-mysql-3.0002_4.tar.tar -C /usr/local/src/

# cd /usr/local/src/DBD-mysql-3.0002_4/

# perl Makefile.PL
(
此步骤中如果出现类同Can't exec "mysql_config": No such file or directory at Makefile.PL line 76.的错误是因为您的mysqlbin目录没有输出至$PATH环境变量)

# make
# make install

十六、安装extman基于Web的邮件帐号管理系统

         http://www.extmail.org/

tar zxvf extman-0\[1\]\[1\].2.2.tar.gz

#mv extman-0.2.2/ /var/www/extsite/extman

vim /var/www/extsuite/extman/webman.cf
SYS_MAILDIR_BASE = /home/domains
此处即为您在前文所设置的用户邮件的存放目录,可改作:
SYS_MAILDIR_BASE = /var/mailbox
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
此处修改为:
SYS_MYSQL_SOCKET = /tmp/mysql.sock
使用extman源码目录下docs目录中的extmail.sqlinit.sql建立数据库:
cd /var/www/extsuite/extman/docs
# mysql -u root -p <extmail.sql
# mysql -u root -p <init.sql
修改cgi目录的属主:
# chown -R postfix.postfix /var/www/extsuite/extman/cgi/
如果extman访问数据库权限不足的话,可采用以下命令将新生成的数据库赋予webman用户具有所有权限:
mysql> GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
mysql> GRANT all privileges on extmail.* TO extmail@127.0.0.1 IDENTIFIED BY 'extmail';

#mkdir –pv /tmp/extman
#chown postfix.postfix /tmp/extman

#/usr/local/apache/bin/apachectl restart

客户端使用浏览器输入地址浏览(http://mail.test.com/

 

选择管理即可登入extman进行后台管理了。默认管理帐号为:root@extmail.org
密码为:extmail*123*

如果您安装后无法正常显示校验码,安装perl-GD模块会解决这个问题。如果想简单,您可以到以下地址下载适合您的平台的rpm包,安装即可

#rpm -ivh perl-GD-2.35-1.el4.rf.i386.rpm

如果发信提示:

SMTP rcpt error: 5.1.1 : Recipient address rejected: User unknown in local recipient table

请在/etc/postfix/main.cf里面确保存在下面配置

local_recipient_maps =

如果发送邮件成功,但是无法接收邮件,请注释掉下面三项:

#myhostname = mail.test.com

#myorigin = test.com

#myhostname = mail.test.com

安装extman图形日志

安装Time::HiRes
#tar zxvf Time-HiRes-1.9719.tar.gz -C /usr/local/src/
#cd /usr/local/src/Time-HiRes-1.9719/
#perl Makefile.PL 
#make
#make test
#make install
安装File::Tail
# tar -zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src/
# cd /usr/local/src/File-Tail-0.99.3/
#perl Makefile
#make
#make test
#make install
安装rrdtool-1.2.23

#rpm –ivh perl-GD-2.35-1.el5.rf.i386.rpm –force
# rpm -ivh rrdtool-1.2.30-1.el5.rf.i386.rpm rrdtool-perl-1.2.27-3.el5.remi.i386.rpm
复制mailgraph_ext/usr/local,并启动之
# cp -r /var/www/extsuite/extman/addon/mailgraph_ext /usr/local
# /usr/local/mailgraph_ext/mailgraph-init start

# /usr/local/mailgraph_ext/qmonitor-init start
添加到自动启动队列
#echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.local
#echo "/usr/local/mailgraph_ext/qmonitor-init start" >> /etc/rc.local

 

 

十七、安装maildrop(邮件过滤)

十八、配置apache
编辑/etc/httpd/httpd.conf,修改运行用户:
如果启用了suexec的功能,则将虚拟主机中指定的
SuexecUserGroup postfix postfix
修改为:
SuexecUserGroup vmail vmail
将用户邮件所在的目录/var/mailboxextman的临时目录/tmp/extman的属主和属组指定为vmail 
#chown -R vmail.vmail /var/mailbox

#chmod –R 0755 /var/mailbox
#chown -R vmail.vmail /tmp/extman
#chown -R vmail.vmail /var/www/extsuite/extmail/cgi/
#chown -R vmail.vmail /var/www/extsuite/extman/cgi/
#chown -R vmail.vmail /tmp/viewlog/
#/etc/init.d/courier-authlib restart

#/usr/local/postfix/sbin/postfix reload

#/usr/local/apache/bin/apachectl restart

进行发信测试后,如果日志中的记录类同以下项,则安装成功
#cat /var/log/maillog
Oct 14 03:45:36 localhost postfix/pipe[31494]: 193F257594: to=<abc@test.com>, relay=maildrop, delay=0.23, delays=0.16/0.02/0/0.05, dsn=2.0.0, status=sent (delivered via maildrop service)

http://www.courier-mta.org

maildrop是一个使用C++编写的用来代替本地MDA的带有过滤功能邮件投递代理,是courier邮件系统组件之一。它从标准输入接受信息并投递到用户邮箱;maildrop既可以将邮件投递到mailboxes格式邮箱,亦可以将其投递到maildirs格式邮箱。同时,maildrop可以从文件中读取入站邮件过滤指示,并由此决定是将邮件送入用户邮箱或者转发到其它地址等。和procmail不同的是,maildrop使用结构化的过滤语言,因此,邮件系统管理员可以开发自己的过滤规则并应用其中。
我们在此将使用maildrop来代替postfix自带的MDA,并以此为基础扩展后文的邮件杀毒和反垃圾邮件功能的调用;在此可能会修改前文中的许多设置,请确保您的设置也做了相应的修改。
1、安装
courier-authlib的头文件及库文件链接至/usr目录(编译maildrop时会到此目录下找此些相关的文件):
# ln -sv /usr/local/courier-authlib/bin/courierauthconfig /usr/bin
# ln -sv /usr/local/courier-authlib/include/* /usr/include

       # tar -jxvf pcre-7.3.tar.bz2 -C /usr/local/src/

       # cd /usr/local/src/pcre-7.3/

# ./configure
# make 
# make check
# make install

# groupadd -g 1001 vmail
# useradd -g vmail -u 1001 -M -s /sbin/nologin vmail

#tar jxvf maildrop-2.0.4.tar.bz2 -C /usr/local/src/

#cd /usr/local/src/maildrop-2.0.4/

#./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001 --enable-maildrop-gid=1001 --with-trashquota --with-dirsync
# make
# make install

检查安装结果,请确保有"Courier Authentication Library extension enabled."一句出现:
# maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.

This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.

新建其配置文件/etc/maildroprc文件,首先指定maildrop的日志记录位置:
# vim  /etc/maildroprc

写入下面记录

logfile "/var/log/maildrop.log"  
# touch /var/log/maildrop.log
# chown vmail.vmail /var/log/maildrop.log
配置Postfix
编辑master.cf
# vim /etc/postfix/master.cf
启用如下两行
maildrop unix - n n - - pipe
   flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

注意:定义transport的时候,即如上两行中的第二行,其参数行必须以空格开头,否则会出错。
编辑main.cf
# vim /etc/postfix/main.cf
virtual_transport = virtual
修改为:
virtual_transport = maildrop
将下面两项指定的UIDGID作相应的修改:
virtual_uid_maps = static:2525
virtual_gid_maps = static:2525
修改为:
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
编辑/etc/authmysqlrc
# vim /etc/authmysqlrc
 

 

 
















本文转自legendfu51CTO博客,原文链接:http://blog.51cto.com/legendfu/1073367  ,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
XML 关系型数据库 Linux
从小白到专家 PG技术大讲堂 - Part 2:PostgreSQL源代码安装
Part 2:PG源代码安装 步骤1 创建用户与环境配置 步骤2 系统内核参数配置 步骤3 PostgreSQL 安装
244 1
从小白到专家 PG技术大讲堂 - Part 2:PostgreSQL源代码安装
|
存储 SQL Oracle
源代码编译安装 MySQL 和多实例| 学习笔记
快速学习源代码编译安装 MySQL 和多实例
317 0
|
关系型数据库 C++ PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 17 章 在Windows上从源代码安装
第 17 章 在Windows上从源代码安装 目录 17.1. 使用Visual C++或Microsoft Windows SDK构建 17.1.1. 要求 17.1.2. 针对64位Windows的特殊考虑 17.1.3. 构建 17.1.4. 清理和安装 17.1.5. 运行回归测试 17.1.6. 构建文档 对于大部分用户,推荐下载Windows的二进制发布,它在PostgreSQL 的网站上作为一个图形化安装包可供下载。
1328 0
|
关系型数据库 开发工具 C++
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 17 章 在Windows上从源代码安装_17.1. 使用Visual C++或Microsoft Windows SDK构建
17.1. 使用Visual C++或Microsoft Windows SDK构建 17.1.1. 要求 17.1.2. 针对64位Windows的特殊考虑 17.1.3. 构建 17.1.4. 清理和安装 17.1.5. 运行回归测试 17.1.6. 构建文档 PostgreSQL可以使用来自微软的Visual C++编译器套件构建。
1550 0
|
关系型数据库 Unix C++
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.7. 平台相关的说明
16.7. 平台相关的说明 16.7.1. AIX 16.7.2. Cygwin 16.7.3. HP-UX 16.7.4. MinGW/原生 Windows 16.7.5. Solaris 这一节提供了考虑 PostgreSQL 安装和设置的附加平台相关的话题。
1493 0
|
关系型数据库 Unix 测试技术
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.6. 平台支持
16.6. 平台支持 如果代码包含规定要工作在一个平台(即一种 CPU 架构和操作系统的结合)上并且它最近已经被验证能在该平台上编译并通过其回归测试,PostgreSQL开发社区才会认为该平台是被支持的。
1295 0
|
关系型数据库 Unix Shell
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.5. 安装后设置
16.5. 安装后设置 16.5.1. 共享库 16.5.2. 环境变量 16.5.1. 共享库 在一些有共享库的系统里,你需要告诉你的系统如何找到新安装的共享库。那些并不是必须做这个工作的系统包括 FreeBSD、HP-UX、Linux、NetBSD、OpenBSD和Solaris。
1365 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.3. 获取源码
16.3. 获取源码 PostgreSQL 10.1 源代码可以从我们的官方网站 https://www.postgresql.org/download/的下载区中获得。你将得到一个名为postgresql-10.1.tar.gz或postgresql-10.1.tar.bz2的文件。
1289 0
|
关系型数据库 PostgreSQL Python
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.2. 要求
16.2. 要求 一般说来,一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 到发布为止已经明确测试过的平台的列表在 第 16.6 节中列出。在发布的doc子目录里面有许多平台相关的 FAQ文档,如果你碰到问题你可能会需要参考它们。
1388 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.1. 简单版
16.1. 简单版 ./configure make su make install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/loc.
1188 0