热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Postfix邮件服务器的简单安装配置

1.安装apacheyum-yinstallgccgcc-c++pcre-develmakelibxml2-develtarzxvfhttpd-2.4.4.tar.gz-C/usr/srccd/usr/src/httpd-2.4.4/./configure--prefix/usr/local/apache--enabl

1.安装apache

yum -y install gcc gcc-c++ pcre-devel make libxml2-devel
tar zxvf httpd-2.4.4.tar.gz -C /usr/src
cd /usr/src/httpd-2.4.4/
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-cgi --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apache/htdocs --with-include-apr --enable-mods-shared=most
make && make install

2.安装mysql


3.
安装php

tar zxvf php-5.3.13.tar.gz -C /usr/src
cd /usr/src/php-5.3.13
./configure --prefix=/usr/local/php --enable-mbstring --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc
cp php.ini-production /usr/local/php/etc/php.ini

4.配置apache支持php

vi /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html

5.安装postfix

userdel postfix
groupdel postfix
groupadd -g 1200 postdrop
groupadd -g 1000 postfix
userdel -M -u 1000 -g postfix -G postdrop -s /sbin/nologin
yum -y install cyrus-sasl-devel db*-devel
vi /etc/ld.so.conf
/usr/loca/mysql/lib    //添加这一行
ldconfig
tar zxvf postfix-2.10.0.tar.gz -C /usr/src
cd /usr/src/postfix-2.10.0/
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/ -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2'
make
make install    //运行后会要求输入安装路径,直接默认就行

6.配置postfix

cd /etc/postfix
postconf -n > main2.cf
mv main.cf main.cf.bak
mv main2.cf main.cf
vi main.cf      //添加如下项
inet_interfaces = 192.168.10.6,127.0.0.1
myhostname = mail.test.com
mydomain = test.com
myorigin = $mydomain
mydestination = $mydomain, $myhostname
home_mailbox = Maildir/
#mydestination     //文件中原来的这一行加#号注释掉

7.配置dovecot

yum -y install pam-devel
useradd -M -s /sbin/nologin dovecot
tar zxvf dovecot-2.2.1.tar.gz -C /usr/src/
cd /usr/src/dovecot/
./configure --with-mysql --with-pam -syscOnfdir=/etc
make
make install
cp -rf /usr/local/share/doc/dovecot/example-config/* /etc/dovecto/
vi /etc/dovecot/dovecot.conf
listen = *
cd /etc/dovecot
vi conf.d/10-auth.conf
disable_plaintext_auth = no
vi conf.d/10-ssl.conf
ssl = no
ssl_cert 和 ssl_key 两行加#号注释掉
vi conf.d/10-mail.conf
mail_location = maildir:~/Maildir
vi /etc/pam.d/dovecot
auth required pam_nologin.so
auth include  system-auth
account include system-auth
session include system-auth
useradd -M -s /sbin/nologin dovenull

7.配置SMTP认证

vi /usr/lib/sasl2/smtpd.conf
pwcheck_method:saslauthd
service saslauthd start
chkconfig --level 35 saslauthd on
vi /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.1,192.168.10.6
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

8.启动postfix、dovecot

postfix做到这已经可以支持用系统用户来收发邮件了...

chmod postfix /var/lib/postfix/master.lock
postfix check
postfix start
dovecot

9.配置postfix支持虚拟用户,首先建立用户数据库

tar zxvf extman-1.1.tar.gz -C /usr/src/
cd /usr/src/extman-1.1/docs/
mysql -u root -p < extmail.sql (这一步如果出现错误,参照http://qikangwei.blog.51cto.com/2282397/866233)
mysql -u root -p < init.sql

10.修改postfix配置

vi /etc/postfix/main.cf
#mydestination = $mydomain, $myhostname  //注释掉这一行
virtual_mailbox_base = /mailbox
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
cp /usr/src/extman-1.1/docs/mysql_virtual_* /etc/postfix/

11.为虚拟用户配置SMTP认证

yum -y install libtool libtool-devel libtool-ltdl-devel sqlite-devel
useradd courier
tar jxvf courier-authlib-0.65.0.tar.bz2 -C /usr/src/
cd /usr/src/courier-authlib-0.65.0/
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-redhat --with-mysql-libs=/usr/local/mysql/lib --with-mysql-includes=/usr/local/mysql/include --with-mailuser=courier --with-mailgroup=courier
make
make install
make install-configure
vi /etc/ld.so.conf
/usr/local/courier-authlib/lib/courier-authlib
ldconfig
cd /usr/local/courier-authlib/etc/authlib/
cp authdaemonrc.dist authdaemonrc
vi authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon/
cp authmysqlrc.dist authmysql
vi authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD uidnumber
MYSQL_GID_FIELD gidnumber
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD concat('/mailbox/',homedir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir)
cp /usr/src/courier-authlib-0.65.0/courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod 755 /etc/rc.d/init.d/courier-authlib
chkconfig --level 35 courier-authlib on
service courier-authlib start
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket

12.配置dovecot支持虚拟用户

vi /etc/dovecot/conf.d/10-auth.conf
#!include auth-system.conf.ext
!include auth-sql.conf.ext
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/mailbox/%d/%n/Maildir
vi /etc/dovecot/dovecot.sql.conf.ext
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = select username as user, password as password from mailbox where username = '%u'
user_query = select maildir, uidnumber as uid, gidnumber as gid from mailbox where username = '%u'

13.安装extmail

yum -y install perl-devel gd-devel
tar zxvf extmail-1.2.tar.gz -C /usr/src/
/usr/src/extmail-1.2/tools/pkg-stats.sh  //执行这条命令后会列出需要安装的软件包,使用下面的perl命令将没有的安装安装即可
perl -MCPAN -e shell
>install  安装包的名字
>exit
mv /usr/src/extmail-1.2/ /usr/local/apache/htdocs/extmail
cd /usr/local/apache/htdocs/extmail
chown -R postfix:postfix cgi
cp webmail.cf.default webmail.cf
vi webmail.cf
SYS_CONFIG = /usr/local/apache/htdocs/extmail
SYS_LANGDIR = /usr/local/apache/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/apache/htdocs/extmail/html
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
vi /usr/local/apache/conf/httpd.conf
#LoadModule suexec_module ......
#LoadModule cgi_module ......     //去掉这两行前面的#
ServerName mail.test.com:80
#DocumentRoot ......              //这行前面加#
#Include conf/extra/httpd-vhosts.conf  //去掉这行前面的#
mkdir -p /mailbox/extmail.org/postmaster/Maildir/
chown -R postfix:postfix /mailbox
vi /usr/local/apache/conf/extra/httpd-vhosts.conf

    DocumentRoot /usr/local/apache/htdocs/extmail/html
    ServerName mail.test.com
    ScriptAlias /extmail/cgi/ /usr/local/apache/htdocs/extmail/cgi/
    Alias /extmail /usr/local/apache/htdocs/extmail/html
    ScriptAlias /extman/cgi/ /usr/local/apache/htdocs/extman/cgi/
    Alias /extman /usr/local/apache/htdocs/extman/html
    SuexecUserGroup postfix postfix

14.安装extman

yum -y install rrdtool rrdtool-perl
perl -MCPAN -e shell
install File::Tail
install Time::HiRes
exit
mv /usr/src/extman-1.1 /usr/local/apache/htdocs/extman
cd /usr/local/apache/htdocs/extman
chown -R postfix:postfix cgi
mkdir /tmp/extman
chown -R postfix:postfix /tmp/extman
cp webman.cf.default webman.cf
vi webman.cf
SYS_CONFIG = /usr/local/apache/htdocs/extman/
SYS_LANGDIR = /usr/local/apache/htdocs/extman/lang
SYS_TEMPLDIR = /usr/local/apache/htdocs/extman/html
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock

15.配置邮件系统的图形化日志信息

perl -MCPAN -e shell
install Carp
install Symbol
install Time::Local
install Getopt::Long
exit
mkdir /usr/local/mailgraph_ext
cp /usr/local/apache/htdocs/extman/addon/mailgraph_ext/* /usr/local/mailgraph_ext/
/usr/local/mailgraph_ext/mailgraph-init start
/usr/local/apache/htdocs/extman/daemon/cmdserver -d

16.重新加载所有服务

service mysqld restart
/usr/local/apache/bin/apachectl restart
postfix reload
doveadm reload

17.登录

前台:http://mail.test.com

默认账户:postmaster  密码:extmail

后台:http://mail.test.com/extman

默认管理员账户:root@extmail.org  密码:extmail*123*

注意事项:

(1) 配置本机指向正确的DNS服务器,并在DNS服务器上添加对应的MX记录和A记录

(2)上面的perl和rrdtool都是用yum安装的,如果使用源码安装,参考下面的步骤

tar jxvf perl-5.16.3.tar.bz2 -C /usr/src
cd /usr/src/perl-5.16.3/
./Configure -des -Dprefix=/usr/local/perl
make
make test
make install
mv /usr/bin/perl /usr/bin/perl.bak
ln -s /usr/local/perl/bin/perl /usr/bin/perl
tar xvf rrdtool.tar.tar -C /usr/src
./configure --prefix=/usr/local/rrdtool
make
make install
cd /usr/local/perl/lib/site_perl/5.16.3/i686-linux/
ln -s /usr/local/rrdtool/lib/perl/5.16.3/i686-linux/RRDs.pm ./
ln -s /usr/local/rrdtool/lib/perl/5.16.3/i686-linux/auto/RRDs/RRDs.so ./
perl -MCPAN -e shell
>install  安装上文中所有需要的安装
推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
author-avatar
wentingcool_533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有