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

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

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值