更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在CentOS上安装和使用PostfixAdmin配置邮件服务器

在CentOS上安装和使用PostfixAdmin配置邮件服务器

更新时间:2023-03-22 09:25:59浏览次数:573+次

本文介绍在CentOS 8、CentOS 7 Linux系统上安装和配置PostfixAdmin的方法,帮助用户使用PostfixAdmin配置邮件服务器。系统要求也很简单,需要CentOS系统上具有sudo权限的用户,同时,确保您的系统是最新的,并且安装了所需的软件包,可运行sudo yum -y update和sudo yum install vim wget命令。

在CentOS上安装和使用PostfixAdmin配置邮件服务器的方法

1、在CentOS上安装LEMP Stack

LEMP服务器代表Linux、Nginx、MariaDB和PHP,它们都可以使用以下命令安装在CentOS上。首先,将EPEL存储库添加到您的系统中:

sudo yum install epel-release

在CentOS上安装Nginx PHP和MariaDB:

sudo yum install nginx mariadb-server mariadb php php-mysqlnd php-fpm php-opcache php-cli php-gd php-curl

由于PHP默认使用用户apache运行,因此我们将更改为Nginx,如下所示:

sudo vim /etc/php-fpm.d/www.conf

按如下方式编辑文件:

user = nginx

group = nginx

listen = /run/php-fpm/www.sock

listen.owner = nginx

listen.group = nginx

现在将正确的权限分配给/var/lib/php目录,如下所示:

sudo chown -R nginx:nginx /var/lib/php

重新启动并启用PHP FPM以在启动时运行:

sudo systemctl enable php-fpm

sudo systemctl start php-fpm

启动并启用Nginx网络服务器:

sudo systemctl enable nginx

sudo systemctl start nginx

2、在CentOS上为PostfixAdmin配置MariaDB

在安装了MariaDB之后,它仍然不安全。因此,我们需要通过如下设置根密码来加强它。首先,启动并启用MariaDB:

sudo systemctl enable --now mariadb.service

然后继续强化:

sudo mysql_secure_installation

然后按要求操作即可,会要求设置root密码、删除匿名用户、不允许root远程登录、删除测试数据库并访问它及立即重新加载权限表。

登录MariaDB shell并创建一个Postfix用户和数据库:

mysql -u root -p

输入设置的密码,然后按如下操作:

CREATE DATABASE postfixadmin;

GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'%' IDENTIFIED BY 'StrongDBPassw0rd';

FLUSH PRIVILEGES;

exit

3、在CentOS上安装PostfixAdmin

我们将从官方PostfixAdmin下载页面下载PostfixAdmin,地址在https://sourceforge.net/projects/postfixadmin/files/。您也可以使用Wget来提取存档,如下所示:

wget https://sourceforge.net/projects/postfixadmin/files/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz -O PostfixAdmin-tar.gz

提取下载的文件:

tar -xvf PostfixAdmin-tar.gz

现在将提取的文件移动到/var/www/html/目录中:

sudo mv postfixadmin-postfixadmin-* /var/www/html/postfixadmin

为PostfixAdmin安装创建一个目录:

sudo mkdir /var/www/html/postfixadmin/templates_c

将目录的所有权更改为Nginx,如下所示:

sudo chown -R nginx:nginx /var/www/html/postfixadmin/

现在创建邮件配置文件并进行以下调整:

sudo vim /var/www/html/postfixadmin/config.local.php

按如下方式编辑文件:

<?php

$CONF['configured'] = true;

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

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

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

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

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

$CONF['default_aliases'] = array (

 'abuse' => 'abuse@example.com',

 'hostmaster' => 'hostmaster@example.com',

 'postmaster' => 'postmaster@example.com',

 'webmaster' => 'webmaster@example.com'

);

$CONF['fetchmail'] = 'NO';

$CONF['show_footer_text'] = 'NO';

$CONF['quota'] = 'YES';

$CONF['domain_quota'] = 'YES';

$CONF['quota_multiplier'] = '1024000';

$CONF['used_quotas'] = 'YES';

$CONF['new_quota_table'] = 'YES';

$CONF['aliases'] = '0';

$CONF['mailboxes'] = '0';

$CONF['maxquota'] = '0';

$CONF['domain_quota_default'] = '0';

?>

为PostfixAdmin数据库创建架构:

sudo -u nginx php /var/www/html/postfixadmin/public/upgrade.php

样本输出:

updating to version 1 (MySQL)...done

updating to version 2 (MySQL)...done

updating to version 3 (MySQL)...done

updating to version 4 (MySQL)...done

updating to version 5 (MySQL)...done

updating to version 79 (MySQL)...done

updating to version 81 (MySQL)...done

updating to version 1839 (all databases)...done

updating to version 1840 (MySQL and PgSQL)...done

updating to version 1842 (all databases)...done

updating to version 1843 (all databases)...done

使用命令为PostfixAdmin创建一个超级管理员帐户:

sudo bash /var/www/html/postfixadmin/scripts/postfixadmin-cli admin add

样本输出:

Welcome to Postfixadmin-CLI v0.3

Admin:

> admin@example.com

Password:

> Passw0rd12

Password (again):

> Passw0rd12

Super admin:

(Super admins have access to all domains, can manage domains and admin accounts.) (y/n)

> y

Domain:

> example.com

Active: (y/n)

> y

The admin admin@example.com has been added!

4、在CentOS上为PostfixAdmin配置Nginx

接下来,我们将为PostfixAdmin创建一个virtual主机文件:

sudo vim /etc/nginx/conf.d/postfixadmin.conf

在文件中,添加以下行,并适当替换。如果您没有FQDN,请将mail.example.com替换为PostfixAdmin的有效域或子域:

server {

        listen 80;

        root /var/www/html/postfixadmin/public;

        index index.html index.htm index.php;

        server_name mail.example.com;

        location ~ \.php$ {

          fastcgi_split_path_info ^(.+\.php)(/.+)$;

          fastcgi_pass unix:/var/run/php-fpm/www.sock;

          fastcgi_index index.php;

          include fastcgi_params;

          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

          fastcgi_intercept_errors off;

          fastcgi_buffer_size 16k;

          fastcgi_buffers 4 16k;

          fastcgi_connect_timeout 600;

          fastcgi_send_timeout 600;

          fastcgi_read_timeout 600;

        }

   location / {

       try_files $uri $uri/ =404;

   }

}

注:mail.example.com是为PostfixAdmin配置的子域的名称。

验证nginx配置语法:

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重新启动Nginx:

sudo systemctl restart nginx

检查服务的状态:

$ systemctl status nginx

nginx.service - The nginx HTTP and reverse proxy server

Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

允许HTTP服务通过防火墙:

sudo firewall-cmd --add-service=http --permanent

sudo firewall-cmd --reload

将SELinux设置为允许模式:

sudo setenforce 0

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

5、访问PostfixAdmin Web界面

在操作完以上配置后,请使用URL访问首选浏览器上的PostfixAdmin web界面,地址格式为http://mail.example.com,您将被授予此登录窗口。

使用超级管理员帐户的凭据登录,如下所示:

\

成功登录后,会出现PostfixAdmin面板,在面板上,您可以执行一些活动,如添加别名、添加邮箱、发送邮件等:

\

我们将执行的第一个活动是添加域。这是通过点击域列表,然后点击新域来完成的,如下所示:

\

输入您的有效域名,然后单击添加域。在域列表中,您的新域应显示为如图所示:

\

在虚拟列表下,您可以添加别名、邮箱和别名域。按以下方式添加邮箱:

\

有一个使用PostfixAdmin发送电子邮件的选项:

\

最后,点击最右边的查看日志就可以查看PostfixAdmin中的日志了,并按如下方式查看活动:

\

6、在CentOS上安装Postfix

随着邮件服务器的设置,我们可以选择安装上Postfix,这是一种免费的开源邮件传输代理(MTA),可以通过互联网将电子邮件从一台服务器路由和传递到另一台服务器。

Postfix可以用于处理从我们的邮件服务器发送和递送电子邮件。由于它在默认的CentOS存储库中可用,请使用命令进行安装:

sudo yum install postfix

编辑postfix配置文件:

sudo vi /etc/postfix/main.cf

在文件中,添加您的主机名和域,如下所示:

##Add your hostname

myhostname = smtp.example.com

##Uncomment the lines below

mydomain = example.com

myorigin = $mydomain

##Edit the lines below(to all)

inet_interfaces = all

inet_protocols = all

#Comment the line as below

# mydestination = $myhostname, localhost.$mydomain, localhost,

##Add your IP range.

mynetworks = 192.168.100.0/24, 127.0.0.0/8

##Uncomment the line below.

home_mailbox = Maildir/

注:比如如果配置的是鸿蒙系统之家,则将example.com替换为hmxthome.com。在以上文件中,请用户自行将example.com替换为您的域名,包括192.168.100.0/24以及您的IP范围。

重新启动并启用Postfix:

sudo systemctl restart postfix

sudo systemctl enable postfix

允许所需的Postfix端口通过防火墙:

sudo firewall-cmd --permanent --add-port=25/tcp

sudo  firewall-cmd --permanent --add-port=587/tcp

sudo  firewall-cmd --reload

现在,您可以使用Postfix从设置邮件服务器发送和接收电子邮件。使用命令测试Postfix:

mail -s “Local Outbound SMTP Test” test@example.com < /dev/null

至此,在CentOS系统上安装Postfix完成。同时,本文的安装和使用PostfixAdmin配置邮件服务器内容到这里就全部完成了。