centos7搭建smtp服务器

环境

[root@CentOS7 ~]# uname -a

Linux CentOS7 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

下列配置均在配置文件指定处修改

配置系统相关

关闭selinux

setenforce 0

关闭firewalld防火墙,并清空iptables规则:

systemctl stop firewalld

iptables -F

iptables -X

iptables -nvL

安装mysql

yum install -y wget

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -ivh epel-release-latest-7.noarch.rpm

安装必要的库

yum install nginx vim gcc gcc-c++ openssl openssl-devel db4-devel ntpdate mysql mysql-devel mysql-server bzip2 php-mysql cyrus-sasl-md5 perl-GD perl-DBD-MySQL perl-GD perl-CPAN perl-CGI perl-CGI-Session cyrus-sasl-lib cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel libtool-ltdl-devel telnet mail libicu-devel -y

配置用户

yum remove postfix -y

userdel postfix

groupdel postdrop

groupadd -g 2525 postfixuseradd -g postfix -u 2525-s/sbin/nologin -M postfix

groupadd -g 2526 postdropuseradd -g postdrop -u 2526-s/sbin/nologin -M postdrop

cd/usr/local/src/

安装postfix并配置

wget http://cdn.postfix.johnriley.me/mirrors/postfix-release/official/postfix-3.0.11.tar.gztar -zxvf postfix-3.0.11.tar.gzcdpostfix-3.0.11

make 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 -lrt -lm -L/usr/lib64/sasl2 -lsasl2 -lssl -lcrypto'

make && make install

tempdir: [/usr/local/src/postfix-3.0.11] /tmp/extmail // 就只更改这一项为tmp目录,其他的全部默认

更改目录的属主和属组

[root@CentOS7 postfix-3.0.11]# chown -R postfix:postdrop /var/spool/postfix

[root@CentOS7 postfix-3.0.11]# chown -R postfix:postdrop /var/lib/postfix/

[root@CentOS7 postfix-3.0.11]# chown root /var/spool/postfix

[root@CentOS7 postfix-3.0.11]# chown -R root /var/spool/postfix/pid

[root@CentOS7 ~]# chmod a+x /etc/postfix

[root@CentOS7 ~]# vim postfix

#!/bin/bash

#

# postfix      Postfix Mail Transfer Agent

#

# chkconfig: 2345 80 30

# description: Postfix is a Mail Transport Agent, which is the program \

#              that moves mail from one machine to another.

# processname: master

# pidfile: /var/spool/postfix/pid/master.pid

# config: /etc/postfix/main.cf

# config: /etc/postfix/master.cf

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ $NETWORKING = "no" ] && exit 3

[ -x /usr/sbin/postfix ] || exit 4

[ -d /etc/postfix ] || exit 5

[ -d /var/spool/postfix ] || exit 6

RETVAL=0

prog="postfix"

start() {

    # Start daemons.

    echo -n $"Starting postfix: "

        /usr/bin/newaliases >/dev/null 2>&1

    /usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"

    RETVAL=$?

    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix

        echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix

        echo

    return $RETVAL

}

stop() {

  # Stop daemons.

    echo -n $"Shutting down postfix: "

    /usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"

    RETVAL=$?

    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix

    echo

    return $RETVAL

}

reload() {

    echo -n $"Reloading postfix: "

    /usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"

    RETVAL=$?

    echo

    return $RETVAL

}

abort() {

    /usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"

    return $?

}

flush() {

    /usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"

    return $?

}

check() {

    /usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"

    return $?

/usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"

    return $?

}

restart() {

    stop

    start

}

# See how we were called.

case "$1" in

  start)

    start

    ;;

  stop)

    stop

    ;;

  restart)

    stop

    start

    ;;

  reload)

    reload

    ;;

  abort)

    abort

    ;;

  flush)

    flush

    ;;

  check)

    check

    ;;

  status)

      status master

    ;;

condrestart)

    [ -f /var/lock/subsys/postfix ] && restart || :

    ;;

  *)

    echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"

    exit 1

esac

exit $?

为脚本添加执行权限,并将服务添加到开机启动项中

[root@CentOS7 ~]# chkconfig --add postfix

[root@CentOS7 ~]# chkconfig postfix on

[root@CentOS7 ~]# chown postfix.postfix -R /var/lib/postfix/

[root@CentOS7 ~]# chown postfix.postfix /var/spool/ -R

安装dovecot

yum install -y dovecot dovecot-mysql

配置dovecot

[root@localhost ~]# cd /etc/dovecot/

[root@localhost dovecot]# vim dovecot.conf    //直接在配置文件最后添加即可

protocols = imap pop3

!include conf.d/*.conf

listen = *

base_dir = /var/run/dovecot/

[root@localhost dovecot]# cd conf.d/

[root@localhost conf.d]# vim 10-auth.conf

disable_plaintext_auth = no

[root@localhost conf.d]# vim 10-mail.conf

mail_location = maildir:~/Maildir

mail_location = maildir:/var/mailbox/%d/%n/Maildir

mail_privileged_group = mail

[root@localhost conf.d]# vim 10-ssl.conf

ssl = no

[root@localhost conf.d]# vim 10-logging.conf

log_path = /var/log/dovecot.log

info_log_path = /var/log/dovecot.info

log_timestamp = "%Y-%m-%d %H:%M:%S "

[root@localhost conf.d]# cp auth-sql.conf.ext auth-sql.conf

[root@localhost conf.d]# vim auth-sql.conf

passdb { 

    driver = sql       

    # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext 

    args = /etc/dovecot/dovecot-sql.conf.ext

}

userdb { 

    driver = sql 

    args = /etc/dovecot/dovecot-sql.conf.ext

}

安装 Courier Unicode Library

wget https://sourceforge.net/projects/courier/files/courier-unicode/1.2/courier-unicode-1.2.tar.bz2

tar jxvf courier-unicode-1.2.tar.bz2

cd courier-unicode-1.2

./configure && make && make install

安装courier-authlib

cd /usr/local/src/

 wget https://sourceforge.net/projects/courier/files/authlib/0.66.2/courier-authlib-0.66.2.tar.bz2

tar -jxvf courier-authlib-0.66.2.tar.bz2

cd courier-authlib-0.66.2

./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc --without-authpam --without-authshadow --without-authvchkpw --without-authpgsql --with-authmysql --with-mysql-libs=/usr/lib64/mysql --with-mysql-includes=/usr/include/mysql --with-redhat --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc --with-mailuser=postfix

make && make install

配置courier-authlib

chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

cp /etc/authdaemonrc.dist /etc/authdaemonrc

cp /etc/authmysqlrc.dist /etc/authmysqlrc

vim /etc/authdaemonrc //配置文件里的验证方法比较多,我们这里只使用authmysql

authmodulelist="authmysql"

authmodulelistorig="authmysql"

vim /etc/authmysqlrc //直接添加到配置文件尾部,然后去上面将响应系统默认的注视掉,或者删除即可

MYSQL_SERVER localhost

MYSQL_USERNAME          extmail

MYSQL_PASSWORD          extmail

MYSQL_SOCKET            /var/lib/mysql/mysql.sock

MYSQL_PORT              3306

MYSQL_DATABASE          extmail

MYSQL_USER_TABLE        mailbox

MYSQL_CRYPT_PWFIELD    password

DEFAULT_DOMAIN          test.com

MYSQL_UID_FIELD        '2525'

MYSQL_GID_FIELD        '2525'

MYSQL_LOGIN_FIELD      username

MYSQL_HOME_FIELD        concat('/var/mailbox/',homedir)

MYSQL_NAME_FIELD        name

MYSQL_MAILDIR_FIELD    concat('/var/mailbox/',maildir)

courier-authlib添加服务启动脚本及其他

[root@CentOS7 courier-authlib-0.66.2]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib

[root@CentOS7 courier-authlib-0.66.2]# chmod +x /etc/init.d/courier-authlib

[root@CentOS7 courier-authlib-0.66.2]#  chkconfig --add courier-authlib

[root@CentOS7 courier-authlib-0.66.2]# chkconfig courier-authlib on

[root@CentOS7 courier-authlib-0.66.2]# echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf.d/courier-authlib.conf

[root@CentOS7 courier-authlib-0.66.2]#  ldconfig

[root@CentOS7 courier-authlib-0.66.2]# service courier-authlib start

Starting Courier authentication services: authdaemond

[root@CentOS7 courier-authlib-0.66.2]#

smtp以及虚拟用户相关的设置

[root@CentOS7 courier-authlib-0.66.2]# vim /usr/lib64/sasl2/smtpd.conf //文件不存在,要自己创建

pwcheck_method: authdaemond

log_level: 3

mech_list: PLAIN LOGIN

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

安装extmail

安装extmail和extman

下载extmail和extman

https://zh.osdn.net/projects/sfnet_ds5752/downloads/yu/extmail-1.2.tar.gz/

https://zh.osdn.net/projects/sfnet_ds5752/downloads/yu/extman-1.1.tar.gz/

创建站点目录并解压、重命名extmail包

[root@CentOS7 src]# mkdir -p /var/www/extsuite

[root@CentOS7 src]# tar -zxvf extmail-1.2.tar.gz -C /var/www/extsuite/

[root@CentOS7 src]# mv /var/www/extsuite/extmail-1.2/ /var/www/extsuite/extmail

建立临时文件目录与session目录,并更改权限

[root@CentOS7 extmail]# mkdir -p /tmp/extmail/upload

[root@CentOS7 extmail]# chown -R postfix.postfix /tmp/extmail/

回到extman的下载目录下,解压extman包

cd /usr/local/src/

tar -zxvf extman-1.1.tar.gz -C /var/www/extsuite/

cd /var/www/extsuite/

mv extman-1.1/ extman

拷贝extman的配置文件

[root@CentOS7 extsuite]# cd extman/

[root@CentOS7 extman]# cp webman.cf.default webman.cf

更改cgi目录的属主属组

[root@CentOS7 extman]# chown -R postfix.postfix /var/www/extsuite/extman/cgi/

[root@CentOS7 extman]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

配置数据库

导入数据库

[root@CentOS7 extman]# vim docs/extmail.sql

:%s/TYPE/ENGINE/

[root@CentOS7 extman]# mysql -uroot < docs/extmail.sql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

[root@CentOS7 extman]#

[root@CentOS7 extman]# yum install mysql-server mysql-client -y

[root@CentOS7 extman]# service mysqld restart

[root@CentOS7 extman]# mysql -uroot < docs/extmail.sql

ERROR 1364 (HY000) at line 31: Field 'ssl_cipher' doesn't have a default value

[root@CentOS7 extman]# vim /etc/my.cnf  //把sql_mode参数注释掉

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[root@CentOS7 extman]# mysql -uroot < docs/extmail.sql

[root@CentOS7 extman]# mysql -uroot < docs/init.sql

导入数据成功后再次修改/etc/my.cnf文件,把刚刚注释的那行给去掉注释,不去掉的话,mysql服务可能会出现不能启动的问题:

[root@CentOS7 extman]# vim /etc/my.cnf

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

登陆mysql

[root@CentOS7 extman]# mysql -u root

mysql> GRANT ALL ON extmail.* to extmail@'%' identified by 'extmail';

Query OK, 0 rows affected (0.00 sec)

复制之前的配置文件

[root@CentOS7 extman]# cd /var/www/extsuite/extman/docs/

[root@CentOS7 docs]# cp mysql_virtual_* /etc/postfix/

为extman创建临时目录

[root@CentOS7 docs]# mkdir /tmp/extman

[root@CentOS7 docs]#  chown -R postfix.postfix /tmp/extman/

启动postfix、dovecot、saslauthd服务,并查看进程是否正常

[root@CentOS7 docs]# service postfix start

Starting postfix (via systemctl):                          [  OK  ]

[root@CentOS7 docs]#

[root@CentOS7 docs]# ps -aux|grep postfix

root      7277  0.0  0.0  95432  2144 ?        Ss  10:19  0:00 /usr/libexec/postfix/master -w

postfix  7278  0.0  0.0  95492  3804 ?        S    10:19  0:00 pickup -l -t unix -u

postfix  7279  0.0  0.0  95540  3828 ?        S    10:19  0:00 qmgr -l -t unix -u

root      7322  0.0  0.0 112708  968 pts/0    S+  10:20  0:00 grep --color=auto postfix

[root@CentOS7 docs]#

[root@CentOS7 docs]# ss -tnluo | grep :25

tcp    LISTEN    0      100      *:25                    *:*                 

[root@CentOS7 docs]# netstat -nap|grep 25

tcp        0      0 0.0.0.0:25              0.0.0.0:*              LISTEN      7277/master       

unix  2      [ ACC ]    STREAM    LISTENING    176525  7277/master          private/virtual

[root@CentOS7 docs]# service dovecot start

Redirecting to /bin/systemctl start dovecot.service

[root@CentOS7 docs]# ps -aux|grep dovecot

root      7440  0.2  0.0  42428  1972 ?        Ss  10:22  0:00 /usr/sbin/dovecot -F

dovecot  7442  0.0  0.0  9360  1012 ?        S    10:22  0:00 dovecot/anvil

root      7443  0.0  0.0  9488  1168 ?        S    10:22  0:00 dovecot/log

root      7445  0.0  0.0  12372  2092 ?        S    10:22  0:00 dovecot/config

root      7461  0.0  0.0 112704  972 pts/0    S+  10:22  0:00 grep --color=auto dovecot

[root@CentOS7 docs]# systemctl start saslauthd

[root@CentOS7 docs]# ps -aux|grep saslauth

root      7494  0.0  0.0  74368  976 ?        Ss  10:22  0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam

root      7495  0.0  0.0  74368  740 ?        S    10:22  0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam

root      7496  0.0  0.0  74368  740 ?        S    10:22  0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam

root      7497  0.0  0.0  74368  740 ?        S    10:22  0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam

root      7498  0.0  0.0  74368  740 ?        S    10:22  0:00 /usr/sbin/saslauthd -m /run/saslauthd -a pam

root      7510  0.0  0.0 112704  972 pts/0    S+  10:23  0:00 grep --color=auto saslauth

[root@CentOS7 docs]# ps aux |grep courier-authlib

root      7539  0.0  0.0 112704  976 pts/0    S+  10:23  0:00 grep --color=auto courier-authlib

root    20039  0.0  0.0  4356  452 ?        S    Nov14  0:00 /usr/local/courier-authlib/sbin/courierlogger -pid=/usr/local/courier-authlib/var/spool/authdaemon/pid -start /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20040  0.0  0.0  64416  2820 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20041  0.0  0.0  64416  752 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20042  0.0  0.0  64416  752 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20043  0.0  0.0  64416  752 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20044  0.0  0.0  64416  752 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

root    20045  0.0  0.0  64416  752 ?        S    Nov14  0:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond

测试

[root@CentOS7 docs]# /usr/local/courier-authlib/sbin/authtest -s login postmaster@extmail.org extmail

Authentication succeeded.    // 显示这个表示成功,测试时使用的是postmaster@extmail.org,因为我们导入的数据库init.sql里面自带了这个。

    Authenticated: postmaster@extmail.org  (uid 2525, gid 2525)

    Home Directory: /var/mailbox/extmail.org/postmaster    // 这里需要注意/var/mailbox这个目录现在我们还没有创建,后面web访问的时候如果没有会报错,所以提前创建。

          Maildir: /var/mailbox/extmail.org/postmaster/Maildir/

            Quota: (none)

Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0

Cleartext Password: extmail

          Options: (none)

[root@CentOS7 docs]# mkdir /var/mailbox

[root@CentOS7 docs]# chown -R postfix.postfix /var/mailbox/

测试发信

[root@CentOS7 docs]# printf "postmaster@extmail.org" | openssl base64

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

[root@CentOS7 docs]#

[root@CentOS7 docs]# printf  "extmail" | openssl base64

ZXh0bWFpbA==

[root@CentOS7 iRedMail-0.9.8]# telnet localhost 25

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mail.hww.com ESMTP Postfix

auth login   // 登陆

334 VXNlcm5hbWU6  

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==  

334 UGFzc3dvcmQ6

ZXh0bWFpbA==

235 2.7.0 Authentication successful

quit        // 退出

221 2.0.0 Bye

Connection closed by foreign host.

配置nginx

修改nginx实现web访问

#SU_UID=vuser

SU_UID=postfix

#SU_GID=vgroup

SU_GID=postfix

启动dispatch-init

[root@CentOS7 docs]# /var/www/extsuite/extmail/dispatch-init start

Starting extmail FCGI server...

[root@CentOS7 docs]#  /var/www/extsuite/extman/daemon/cmdserver -v -d

loaded ok

安装nginx

yum install nginx -y

添加nginx虚拟主机

[root@CentOS7 docs]# vim /etc/nginx/conf.d/extmail.conf

server {

        listen      8080;

        server_name  mail.hww.com;

        index index.html index.htm index.php index.cgi;

        root  /var/www/extsuite/extmail/html/;

        location /extmail/cgi/ {

                fastcgi_pass          127.0.0.1:8888;

                fastcgi_index        index.cgi;

                fastcgi_param  SCRIPT_FILENAME  /var/www/extsuite/extmail/cgi/$fastcgi_script_name;

                include              fcgi.conf;

        } 

        location  /extmail/  {

                alias  /var/www/extsuite/extmail/html/;

        } 

        location /extman/cgi/ {

                fastcgi_pass          127.0.0.1:8888;

                fastcgi_index        index.cgi;

                fastcgi_param  SCRIPT_FILENAME  /var/www/extsuite/extman/cgi/$fastcgi_script_name;

                include            fcgi.conf;

        } 

        location /extman/ {

                alias  /var/www/extsuite/extman/html/;

        } 

        access_log  /var/log/extmail_access.log;

}

创建fcgi.conf文件

[root@CentOS7 docs]# vim /etc/nginx/fcgi.conf

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING      $query_string;

fastcgi_param  REQUEST_METHOD    $request_method;

fastcgi_param  CONTENT_TYPE      $content_type;

fastcgi_param  CONTENT_LENGTH    $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;

安装Unix::Syslog

[root@CentOS7 src]# wget http://www.cpan.org/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.1.tar.gz

--2018-11-15 10:43:13--  http://www.cpan.org/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.1.tar.gz

Resolving www.cpan.org (www.cpan.org)... 151.101.78.217, 2a04:4e42:12::729

Connecting to www.cpan.org (www.cpan.org)|151.101.78.217|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 13738 (13K) [application/x-gzip]

Saving to: ‘Unix-Syslog-1.1.tar.gz’

100%[==========================================================================================================>] 13,738      --.-K/s  in 0s     

2018-11-15 10:43:13 (197 MB/s) - ‘Unix-Syslog-1.1.tar.gz’ saved [13738/13738]

[root@CentOS7 src]# ls

courier-authlib-0.66.2          courier-unicode-1.2          extmail-1.2.tar.gz  postfix-3.0.11        Unix-Syslog-1.1.tar.gz

courier-authlib-0.66.2.tar.bz2  courier-unicode-1.2.tar.bz2  extman-1.1.tar.gz  postfix-3.0.11.tar.gz  wget-log

[root@CentOS7 src]# tar zxvf Unix-Syslog-1.1.tar.gz

[root@CentOS7 src]# cd Unix-Syslog-1.1

[root@CentOS7 Unix-Syslog-1.1]# perl Makefile.PL && make && make install

启动nginx

[root@CentOS7 Unix-Syslog-1.1]# service nginx start

Redirecting to /bin/systemctl start nginx.service

[root@CentOS7 Unix-Syslog-1.1]# ps -aux |grep nginx

root      8806  0.0  0.0 120780  2284 ?        Ss  10:45  0:00 nginx: master process /usr/sbin/nginx

nginx    8807  0.0  0.0 121224  3172 ?        S    10:45  0:00 nginx: worker process

nginx    8808  0.0  0.0 121224  3172 ?        S    10:45  0:00 nginx: worker process

nginx    8809  0.0  0.0 121224  3172 ?        S    10:45  0:00 nginx: worker process

nginx    8810  0.0  0.0 121224  3172 ?        S    10:45  0:00 nginx: worker process

root      8827  0.0  0.0 112704  972 pts/0    S+  10:45  0:00 grep --color=auto nginx

[root@CentOS7 Unix-Syslog-1.1]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   

tcp        0      0 0.0.0.0:110            0.0.0.0:*              LISTEN      7440/dovecot       

tcp        0      0 0.0.0.0:143            0.0.0.0:*              LISTEN      7440/dovecot       

tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      8806/nginx: master 

tcp        0      0 0.0.0.0:8080            0.0.0.0:*              LISTEN      8806/nginx: master 

tcp        0      0 0.0.0.0:22              0.0.0.0:*              LISTEN      811/sshd           

tcp        0      0 127.0.0.1:8888          0.0.0.0:*              LISTEN      8026/dispatch.fcgi 

tcp        0      0 0.0.0.0:25              0.0.0.0:*              LISTEN      7277/master       

tcp6      0      0 :::3306                :::*                    LISTEN      5738/mysqld       

tcp6      0      0 :::80                  :::*                    LISTEN      8806/nginx: master 

[root@CentOS7 Unix-Syslog-1.1]#

windows页面访问测试

到windows上访问你服务器IP的8080端口


extman的登录账户为:root@extmail.org

密码为:extmail*123*

首次使用需要先添加域,添加之后再修改域,改为可自由注册,再注册用户就可以登录发邮件了:


此处遇到了校验码无法正常显示的问题,可以先不要校验码的功能,先玩玩其它的;有点粗暴了,后续待解决

SYS_CAPTCHA_ON = 1  把1改为0表示不启用校验码功能

[root@CentOS7 ~]# vim /var/www/extsuite/extman/webman.cf

#SYS_CAPTCHA_ON = 1

SYS_CAPTCHA_ON = 0 

或者安装/usr/ports/graphics/p5-GD , 没找到资源。。。

登陆成功


添加并设置域


注册


登陆

此时报错了

Can't chdir to /var/mailbox/fish.com/heweiwei/Maildir/, No such file or dire

解决办法:比较粗暴,只可解燃眉之急,后续待解决

使用管理员群发邮件,用户自己创建目录了

群发后即可登陆如下:


此处大致就搞定了

后续需修复一些小问题

参考原文链接

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容