在Ubuntu 18.04 LTS上安装和配置Postal邮件服务器
我们将讨论Ubuntu 18.04 LTS上的Postal邮件服务器的安装。
Postal是传入和传出电子邮件的邮件交付平台。
它是一个完整且功能齐全的邮件服务器,应满足所有和Web服务器的电子邮件要求。
在Ubuntu 18.04 LT上安装Postal邮件服务器
在Ubuntu 18.04上安装Postal邮件服务器并不像其他人那样复杂。
通过保留一些分钟并在以下几个步骤之后,我们应该在Ubuntu 18.04服务器上运行Postal邮件服务器。
第1步:更新系统
与Oniarad上可用的所有其他安装教程一样,我们通过确保更新系统来开始安装。
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上的Ruby安装的完整教程可供选择
如何在Ubuntu 18.04 LTS上安装Ruby
第3步:安装MySQL/MariaDB数据库服务器
邮寄邮件服务器的其他要求是数据库服务器。
如果我们未安装它,请使用下面的教程。
在Ubuntu 18.04上安装MariaDB 10.x
也安装 libmysqlclient-dev
sudo apt -y install libmysqlclient-dev
对于MySQL,使用:
如何在Ubuntu 18.04/16.04上安装MySQL 8.0
在安装MariaDB/MySQL数据库服务器后,为Seafile创建用户和数据库。
首先登录MySQL Shell作为root用户:
$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, 2016, 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将处理邮件服务器的数据库创建,但我们需要提供访问此操作。
允许 postal
用户管理以前缀为前缀的所有数据库 postal-
。
GRANT ALL PRIVILEGES ON `postal-%`.* to `postal`@`localhost` IDENTIFIED BY "StrongPassword"; FLUSH PRIVILEGES;
通过登录数据库确认访问 postal
用户:
$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, 2016, 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上安装Rabbitmq:
如何在Ubuntu 18.04 LTS上安装最新的RabbitMQ服务器
我们可以跳过配置RabbitMQ管理仪表板的部分并设置RabbitMQ群集。
单个节点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 18.04上安装Node.js 10 LTS
第6步:设置服务器要求
Postal将在服务器上作为自己的用户执行。
添加将使用主目录管理邮寄邮件服务器的用户 /opt/postal
sudo useradd -r -m -d /opt/postal -s /bin/bash postal
允许Ruby侦听Web端口。
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ruby2.5
安装所需的系统范围内的宝石:
sudo gem install bundler sudo gem install procodile sudo gem install nokogiri -v '1.7.2'
克隆Postal存储库
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: Hyman@theitroad
编辑文件以适合Postal设置。
对于DNS,如果我们正在寻找自托管简单的DNS解决方案,我们可以使用DNSMASQ。
如何在Ubuntu 18.04 LTS上安装和配置DNSMASQ
完成时初始化数据库和资产:
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 : Hyman@theitroad First Name : Admin Last Name : User Initial Password: : ** **** ** User has been created with e-mail address Hyman@theitroad
启动应用程序
运行以下命令以启动邮寄应用程序
# postal start Started Procodile supervisor with PID 31196
我们可以随时查看状态:
postal status.
配置nginx.
安装nginx.
sudo apt -y install nginx
配置nginx.
sudo cp /opt/postal/app/resource/nginx.cfg /etc/nginx/sites-available/default
如果我们有商业或者Let’s Encrypt 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
访问Postal管理页面 https://postal.example.com
使用前面创建的管理员电子邮件登录。
配置Postal服务以启动启动
我们通过运行一个使服务在后台运行的命令来启动Postal服务。
如果系统出于任何原因重新启动,则该服务将不会自动启动。
我们可以创建一个系统文件,用于管理Postal服务:
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 * postal.service - Postal Mail Platform Loaded: loaded (/etc/systemd/system/postal.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2016-12-22 23:57:00 PST; 8s ago Process: 2468 ExecStart=/usr/bin/postal start (code=exited, status=0/SUCCESS) Main PID: 2495 (procodile) Tasks: 36 (limit: 2319) CGroup: /system.slice/postal.service |-2495 [procodile] Postal (/opt/postal/app) |-2501 [postal] web.1 |-2503 [postal] worker.1 (i |-2509 [postal] cron.1 |-2511 [postal] smtp.1 `-2515 [postal] requeuer.1 Dec 22 23:57:00 ubuntu-01 systemd[1]: Starting Postal Mail Platform... Dec 22 23:57:00 ubuntu-01 postal[2468]: Started Procodile supervisor with PID 2495 Dec 22 23:57:00 ubuntu-01 systemd[1]: Started Postal Mail Platform.