在 UBUNTU 22.04 上逐步构建 Postal SMTP 服务器

avatar
作者
猴君
阅读量:0

构建 Postal SMTP 服务器来发送批量电子邮件是电子邮件营销人员的不错选择。Postal 功能非常强大,并拥有大量开发人员的支持。它是一个用 JavaScript 和 Ruby 编写的开源邮件服务器脚本。它可用于构建内部 SMTP 服务器,就像 Mailgun、Sendgrid、Mailchimp 等一样。

Postal 的安装并不十分简单。安装过程相当复杂。这是因为 Postal 需要预先安装几个包,然后才能使用。我已尝试使其尽可能简单。

Postal SMTP 服务器要求

至少具有 4 GB RAM 和 2 个 vCPU 的 VPS 或云
操作系统:Ubuntu 22.04 或 Ubuntu 20.04

我偿试用Centos 7.x,会在启动时候一直无限重启,最后换了Ubuntu 正常

本地环境部署,虽然没报错,但一直不能访问,换到了云端直接启动直接用,我暂时还不清楚什么情况,阿里云的请申请开通25端口,坑人的玩意,正常使用最主要的是DNS的配置,请看官网文档、配置文件、新增组织后的DNS说明。 我想用批量新增或转发路由,但并没找到相关内容,可惜

初始设置

要开始安装,您需要连接到服务器。如果您使用的是 Linux,则必须为此获取 SSH 客户端。Putty 就是这样一个 SSH 客户端。但是如果您使用的是 Linux 或 Mac,只需打开终端并输入ssh@xx.xxxxx ,其中 xx.xxxxx 是您的服务器 IP 地址。
首先切换到root用户

sudo -i 

之后更新并升级你的 Ubuntu

apt update -y apt upgrade -y 

接下来设置主机名。将“example.com”替换为您的域名。

hostnamectl set-hostname postal.yourdomain.com 

更新 DNS 记录
登录域名注册商并为postal.example.com创建A记录

现在让我们开始安装

安装 Docker 和 Docker-Compose

最近,postal切换到 docker 模式,以便最终用户更轻松地进行安装。因此,我们需要先安装Docker 和 Docker-Compose 。我已经详细讨论了什么是 docker、docker-compose 和安装步骤。请随意阅读本文以清楚地了解 docker。

安装 Docker

首先,设置几个包来设置 Docker 存储库

sudo apt-get install ca-certificates curl gnupg 

接下来,添加Docker 的官方 GPG 密钥。

sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg 

现在,您可以使用以下命令安装 Docker 存储库

echo \   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \   $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 

接下来更新系统软件

sudo apt-get update -y 

最后,运行以下命令安装Docker Engine和containerd。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

安装 Docker-Compose
首先下载 Docker Compose 的当前稳定版本:

curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 

接下来,更新二进制权限

sudo chmod +x /usr/local/bin/docker-compose 

另外,创建一个符号链接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 

最后,测试docker-compose安装

docker-compose --version 

您将看到 docker-compose 版本。如果您看到其他内容,则表示出现问题。

安装Postal SMTP 的其他先决条件

安装 Docker 和 Docker-compose 后,您需要安装一些其他软件包,如 Git、MariaDB 等。
因此,让我们逐一安装它们。
首先,安装 git 和 git curl

apt install git curl jq -y 

接下来克隆Postal助手存储库

git clone https://github.com/postalserver/install /opt/postal/install sudo ln -s /opt/postal/install/bin/postal /usr/bin/postal 

安装 MariaDB

现在,你可以在docker容器中安装MariaDB

docker run -d \    --name postal-mariadb \    -p 127.0.0.1:3306:3306 \    --restart always \    -e MARIADB_DATABASE=postal \    -e MARIADB_ROOT_PASSWORD=postal \    mariadb 

现在我们已经安装了所有必备软件包,是时候安装 Postal

安装Postal

你之前安装的Postal存储库能够生成一些配置文件以供使用
运行以下命令。

postal bootstrap postal.yourdomain.com 

上述命令生成 3 个文件。其中postal.yml是我们感兴趣的。
你将看到类似这样的输出

version: 2  postal:   web_hostname: postal.yourdomain.com   web_protocol: https   smtp_hostname: postal.yourdomain.com  main_db:   host: 127.0.0.1   username: root   password: postal   database: postal  message_db:   host: 127.0.0.1   username: root   password: postal   prefix: postal  smtp_server:   default_bind_address: "::"  dns:   # Specify the DNS records 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.yourdomain.com   spf_include: spf.postal.yourdomain.com   return_path_domain: rp.postal.yourdomain.com   route_domain: routes.postal.yourdomain.com   track_domain: track.postal.yourdomain.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  rails:   # This is generated automatically by the config initialization. It should be a random   # string unique to your installation.   secret_key: 2f271404e1fac638bf546b0ee4b6485c713351aba71291ae55253f345d0dc045c0450a5750e7ca2bbd2068628d5a2253454cca352c46ea9d9804ed59cbe8a027b24dc74bcadd3b50ae21138a61d344609d13f0875caf21c53681e5289868194f756a8c34e2409b8ec92e3e149c13fe4e08dc6cbdb04bb02bc8943d1ff8faeae6 

初始化数据库

初始化数据库非常简单,只需执行以下命令,您就会看到在输出中创建的数据库表。

postal initialize 

之后,是时候建立Postal

postal make-user 

系统将要求您输入管理员用户的电子邮件 ID、姓名和密码。输入答案,然后转到下一步

启动并运行Postal

启动和运行Postal也非常简单。只需运行以下命令即可。

postal start 

您可以检查Postal状态

postal status 

你也可以输入postal查看相关的命令

root@postal:~# postal Usage: postal [command]  Running postal:   * start - start Postal  * stop - stop Postal  * restart - restart Postal  * status - view current process status  * logs [service] - view logs from services  Setup/upgrade tools:   * initialize - create and load the DB schema  * upgrade - upgrade the DB schema  Other tools:   * version - show the current Postal version  * make-user - create a new global admin user  * default-dkim-record - display the default DKIM record  * console - open an interactive console  * test-app-smtp - send a test message through Postal  * bootstrap hostname [path] - create a new set of config  * bash [service] - access a bash console for a running process 

安装 Caddy(这个是官网的教程,也可以使用自己熟悉的代理)

这是Postal添加的新功能,用于自动安装 SSL。

docker run -d \    --name postal-caddy \    --restart always \    --network host \    -v /opt/postal/config/Caddyfile:/etc/caddy/Caddyfile \    -v /opt/postal/caddy-data:/data \    caddy 

现在,您可以https://postal.yourdomain.com使用管理员凭据登录。您将看到类似这样的管理页面。在这里插入图片描述
有时间的会再写一篇关于使用的文章,最主要的还是DNS的配置

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!