云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04 LTS系统上安装和配置Postal服务器

在Ubuntu 18.04 LTS系统上安装和配置Postal服务器

2018-12-29 10:33:24作者:戴进稿源:云网牛站

本文介绍在Ubuntu 18.04 LTS操作系统上安装Postal Mail Server的方法。

 

简介

Postal是电子邮件传递平台,它是一个功能齐全的完整邮件服务器,可以满足所有网站和Web服务器的电子邮件要求。通过以下步骤可以在Ubuntu 18.04服务器上运行Postal。

 

第1步:更新Ubuntu 18.04系统

运行以下命令即可:

sudo apt update

sudo apt -y upgrade

sudo apt -y install git 

sudo reboot

 

第2步:在Ubuntu 18.04 LTS上安装Ruby

安装Postal邮件服务器需要Ruby,使用以下命令将其安装在Ubuntu 18.04上:

sudo apt install software-properties-common

sudo apt-add-repository ppa:brightbox/ruby-ng

sudo apt update

sudo apt install ruby2.3 ruby2.3-dev build-essential

参考:在Ubuntu 18.04 LTS系统上安装Ruby的方法

 

第3步:安装MySQL/MariaDB数据库服务器

安装Postal邮件服务器另一个要求是数据库服务器,如果没有安装它,请参考在Ubuntu 18.04系统上安装MariaDB 10.4的步骤安装。

还要安装libmysqlclient-dev:

sudo apt -y install libmysqlclient-dev

对于MySQL,请参考以图解的方式在Ubuntu 18.04.1中安装mysql数据库

安装MariaDB/MySQL数据库服务器后,为Seafile创建用户和数据库。

首次以root用户身份登录MySQL shell:

$ mysql -u root -p

Enter password: 

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 48

Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

我们将为每个服务器组件创建一个数据库:

CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建数据库用户并为创建的数据库授予权限:

CREATE USER 'postal'@'localhost' IDENTIFIED BY 'StrongPassword';

GRANT ALL ON postal.* TO 'postal'@'localhost';

Postal将处理为你的邮件服务器创建数据库,但需要授予其访问权限,允许用户管理所有以邮件为前缀的数据库:

GRANT ALL PRIVILEGES ON `postal-%`.* to `postal`@`localhost` IDENTIFIED BY "StrongPassword";

FLUSH PRIVILEGES;

通过以用户身份登录数据库来确认访问权限:

$ mysql -u postal -p

Enter password: 

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 49

Server version: 10.3.11-MariaDB-1:10.3.11+maria~bionic-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW DATABASES;

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

Database

postal

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

4 rows in set (0.001 sec)

MariaDB [(none)]> QUIT

Bye

 

第4步:安装RabbitMQ

Postal得使用到RabbitMQ,请参考在Ubuntu 18.04 LTS系统上安装RabbitMQ服务器的步骤

你也可以跳过配置RabbitMQ管理仪表板和设置RabbitMQ群集的部分。单个节点RabbitMQ安装应该足够用于小型使用。如果是群集请参考在Ubuntu 18.04 LTS系统上配置RabbitMQ集群的步骤

Postal需要自己的RabbitMQ vhost和用户连接,使用以下命令创建它们:

sudo rabbitmqctl add_vhost /postal

sudo rabbitmqctl add_user postal StrongPassword

sudo rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*"

 

第5步:安装Node.js

Node.js没有在Ubuntu 18.04上预先安装,需要手动安装它,参考Ubuntu 16.04安装Node.js一文。

 

第6步:设置服务器要求

Postal需要在服务器上执行一系列的操作,添加将使用/opt/postal主目录管理Postal Mail服务器的用户:

sudo useradd -r -m -d /opt/postal -s /bin/bash postal

允许ruby在Web端口上侦听:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ruby2.5

安装所需的系统gems:

sudo gem install bundler

sudo gem install procodile

sudo gem install nokogiri -v '1.7.2'

克隆Postal repository:

sudo -i -u postal mkdir -p /opt/postal/app

wget https://postal.atech.media/packages/stable/latest.tgz -O - | sudo -u postal tar zxpv -C /opt/postal/app

为Postal二进制文件创建一个符号链接:

sudo ln -s /opt/postal/app/bin/postal /usr/bin/postal

安装运行应用程序所需的所有必需依赖项

postal bundle /opt/postal/vendor/bundle

生成和修改Postal配置文件。

使用以下命令生成Postal配置文件:

# postal initialize-config

Created example config file at /opt/postal/config/postal.yml

Created new private key for Let's Encrypt

Created new signing key for DKIM & HTTP requests

Created new private key for default fast server TLS connections

Created new self signed certificate for default fast server TLS connections

打开Postal配置文件:

vim /opt/postal/config/postal.yml

至少应具有以下设置:

web:

# The host that the management interface will be available on

host: postal.example.com

# The protocol that requests to the management interface should happen on protocol: https

main_db:

# Specify the connection details for your MySQL database

host: localhost

username: postal

password: StrongPassword

database: postal

message_db:

# Specify the connection details for your MySQL server that will be house the

# message databases for mail servers.

host: localhost

username: postal

password: StrongPassword

prefix: postal

rabbitmq:

# Specify the connection details for your RabbitMQ server.

host: 127.0.0.1

username: postal

password: StrongPassword

vhost: /postal 

dns:

# Specifies the DNS record that you have configured. Refer to the documentation at

# https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further

# information about these.

mx_records:

- mx.postal.example.com

smtp_server_hostname: postal.example.com

spf_include: spf.postal.example.com

return_path: rp.postal.example.com

route_domain: routes.postal.example.com

track_domain: track.postal.example.com

smtp:

# Specify an SMTP server that can be used to send messages from the Postal management

# system to users. You can configure this to use a Postal mail server once the

# your installation has been set up.

host: 127.0.0.1

port: 2525

username: # Complete when Postal is running and you can

password: # generate the credentials within the interface.

from_name: Postal

from_address: postal@yourdomain.com

编辑文件以适合你的Postal设置。

对于DNS,如果你正在寻找自托管的简单DNS解决方案,则可以使用DnsMasq,参考Linux中使用Dnsmasq部署DNS服务

完成后初始化数据库和资产:

postal initialize

创建初始管理员用户:

# postal make-user

Postal User Creator

Enter the information required to create a new Postal user.

This tool is usually only used to create your initial admin user.

E-Mail Address      : admin@example.com

First Name          : Admin

Last Name           : User

Initial Password:   : ********

User has been created with e-mail address admin@example.com

启动应用程序:

运行以下命令以启动Postal应用程序:

# postal start

Started Procodile supervisor with PID 31196

你可以随时查看状态:

postal status

 

第7步:配置Nginx

安装nginx:

sudo apt -y install nginx

配置Nginx:

sudo cp /opt/postal/app/resource/nginx.cfg /etc/nginx/sites-available/default

如果有商业版或Let's加密SSL证书,请将它们放在:

/etc/nginx/ssl/postal.key --> Private Key

/etc/nginx/ssl/postal.cert --> Certificate

如果没有有效的SSL证书,则可以使用自签名SSL证书:

sudo mkdir /etc/nginx/ssl/

sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/nginx/ssl/postal.key -out /etc/nginx/ssl/postal.cert -days 365 -nodes

打开文件/etc/nginx/sites-available/default并为Postal设置正确的域名:

server_name postal.example.com;

进行更改后重新启动nginx:

sudo systemctl restart nginx

访问https://postal.example.com上的Postal管理页面:

在Ubuntu 18.04 LTS系统上安装和配置Postal服务器

使用之前创建的管理员用户:

在Ubuntu 18.04 LTS系统上安装和配置Postal服务器

 

第8步:配置Postal服务以在启动时启动

我们通过运行一个命令来启动邮件服务,该命令使服务在后台运行,如果系统因任何原因重新启动,则不会自动启动该服务。

可以创建用于管理邮政服务的systemd单元文件:

sudo vim /etc/systemd/system/postal.service

将以下内容粘贴到文件中:

[Unit]

Description=Postal Mail Platform

After=mysql.service rabbitmq-server.service

Wants=mysql.service rabbitmq-server.service

[Service]

ExecStart=/usr/bin/postal start

ExecStop=/usr/bin/postal stop

ExecReload=/usr/bin/postal restart

User=postal

Restart=on-failure

Type=forking

[Install]

WantedBy=mysql.service rabbitmq-server.service

重新加载系统:

sudo systemctl daemon-reload

启动并启用postal服务:

sudo systemctl enable postal

sudo systemctl start postal

你可以使用以下命令确认:

$ sudo systemctl status postal

在Ubuntu 18.04 LTS系统上安装和配置Postal服务器

到了这一步,在Ubuntu 18.04 LTS系统上安装和配置Postal服务器就算完成了。

 

相关主题

HTTPS加密简介以及Nginx安装Let’s Encrypt免费SSL/TLS证书

精选文章
热门文章