构建 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的配置