postfixadmin

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

第二步:(实现web端的收发,以及支持mysql端虚拟用户的收发,密码的修改等)

1.环境配置

yum 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

# vi /etc/httpd/conf/httpd.conf

#增加下面两行

AddType application/x-httpd-php .php

PHPIniDir "/etc/php.ini"

#修改下面四行

DirectoryIndex index.php index.html index.html.var

User vmail

Group vmail

Listen 9999(为了测试方便,端口号未修改)


# vi /var/www/html/index.php

<?php phpinfo();?>

# systemctl start httpd.service

浏览器输入

http://110.110.110.110:9999/即可测试成功


2.配置postfixadmin

# tar -zxvf postfixadmin-2.93.tar.gz -C /var/www/html

# cd /var/www/html

# mv postfixadmin-2.93 postfixadmin

# vi postfixadmin/config.inc.php

$CONF['configured'] = true;

$CONF['setup_password'] = 'afe0c247277cb58f7ccf798da29b0976:8744abeb23a481eb0fc14a8f9286da0827352d02';

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

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

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

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

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

$CONF['admin_email'] = 'wc@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';


3.配置mysql

systemctl start mariadb.service

mysql

mysql> create database postfix;

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

mysql> flush privileges;

# mysql -u postfix -p postfix

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| postfix            |

| test               |

+--------------------+

3 rows in set (0.00 sec)

mysql>


4.浏览器验证

# chown -R vmail.vmail postfixadmin/

http://110.110.110.110/postfixadmin/setup.php

如果报错说没有dovecot安装即可

yum install dovecot dovecot-devel dovecot-mysql

http://110.110.110.110/postfixadmin/login.php能登录即可


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

5.1建立创建虚拟邮箱脚本

# 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


5.2建立删除虚拟邮箱脚本

# 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.3手动建立目录及赋予权限

# mkdir /var/vmail/deleted-maildirs

# chown -R vmail.vmail /var/vmail/deleted-maildirs/

# chmod 750 /usr/local/bin/maildir-*

# chown vmail.vmail /usr/local/bin/maildir-*

#vim /etc/sudoers

#文本最后增加两行

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

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

#修改下面一行

#Defaults    requiretty

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


5.4未找到的内容,参考文献上有,本人并未配置(任然需要测试)

# cd /var/www/html/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']);

# 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");


6.


参考:

http://freeloda.blog.51cto.com/2033581/1245492/

http://blog.163.com/qiushuhui1989@126/blog/static/2701108920146279368171/


报错1:浏览器输入http://110.110.110.110/postfixadmin/setup.php报错如下

Error: Smarty template compile directory templates_c is not writable

解决1:目录权限问题,chown -R vmail.vmail postfixadmin执行即可

报错2:Setup password not specified correctly

解决2:

报错3:Your password must contain at least 2 digit(s).

解决3:

报错4:浏览器执行http://110.110.110.110:110/postfixadmin/login.php输入管理员账号密码无用

tail -f /var/log/httpd/error_log

[Thu Dec 31 15:40:43.373654 2015] [:error] [pid 2916] [client 175.175.175.175:52509] PHP Warning:  session_start(): open(/var/lib/php/session/sess_1pg175mspao175iebqcfmhu0b6, O_RDWR) failed: Permission denied (13) in /var/www/html/postfixadmin/common.php on line 30, referer: http://110.110.110.110:110/postfixadmin/login.php

解决4:cd /var/lib/php之后执行chown -R vmail.vmail session即可

错误4:和网上说的vi /etc/php.ini中去掉session.save_path ='/tmp'前的;无关



本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1731965,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
WinRAR 5.40 & 4.20 & 3.93 的注册码 - rarreg.key
把下面的数据复制到“记事本”中,用文件名“rarreg.key”命名该文件,保存到WinRAR安装文件夹即完成注册。以下4个Key随便选一个复制都可以。WinRAR 5.40 版Key,复制箭头中间内容,上下无空格。
13390 1
|
云安全 安全
阿里云服务器25端口解封教程完美解决25端口开通问题
阿里云服务器25端口如何申请解封?默认阿里云25端口是封禁的,一般建议使用465端口代替,但是也可以申请解封25端口,阿小云来详细说下阿里云服务器25端口解封教程
7598 0
 阿里云服务器25端口解封教程完美解决25端口开通问题
|
9月前
|
JSON 数据格式
【2022】二进制方式部署etcd高可用集群
【2022】二进制方式部署etcd高可用集群
119 0
|
11月前
|
存储 Java Maven
Java环境下Maven安装与环境变量配置
Java环境下Maven安装与环境变量配置
1069 0
|
Java Maven
Maven配置阿里云镜像与JDK编译版本
Maven配置阿里云镜像与JDK编译版本
6956 0
Maven配置阿里云镜像与JDK编译版本
|
存储 Linux 网络安全
什么是firewalld,简介、策略及规则(Centos7防火墙)(下)
什么是firewalld,简介、策略及规则(Centos7防火墙)(下)
319 0
|
Web App开发 缓存 网络协议
nginx 限流模块和fail2ban搭配使用
ngnix的限流模块主要有三个: limit_conn 限制某个ip的tcp连接数目或者限制某个server(网站)整体的连接数目 limit_rate 现在每个请求的数据大小 limit_req 限制某个ip的请求次数 其中效果最明显的是第三个limit_req,但是宝塔面板中的流量限制只有前面两项的配置,所以之前一直流量限制没什么用。
371 0
nginx 限流模块和fail2ban搭配使用
|
开发工具 git
dirsearch web网站目录扫描工具详解
作者主页:https://www.couragesteak.com/
dirsearch web网站目录扫描工具详解
|
Java Nacos 数据安全/隐私保护
将配置文件发布 Nacos 配置中心|学习笔记
快速学习将配置文件发布 Nacos 配置中心
215 0
将配置文件发布 Nacos 配置中心|学习笔记

热门文章

最新文章