构建 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 正常
初始设置
要开始安装,您需要连接到服务器。如果您使用的是 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 记录
登录域名注册商并为mail.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: 2postal:web_hostname: postal.yourdomain.comweb_protocol: httpssmtp_hostname: postal.yourdomain.commain_db:host: 127.0.0.1username: rootpassword: postaldatabase: postalmessage_db:host: 127.0.0.1username: rootpassword: postalprefix: postalsmtp_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.comspf_include: spf.postal.yourdomain.comreturn_path_domain: rp.postal.yourdomain.comroute_domain: routes.postal.yourdomain.comtrack_domain: track.postal.yourdomain.comsmtp:# 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.1port: 2525username: # Complete when Postal is running and you canpassword: # generate the credentials within the interface.from_name: Postalfrom_address: postal.yourdomain.comrails:# 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
安装 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使用管理员凭据登录。您将看到类似这样的管理页面。