在 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 正常

初始设置

要开始安装,您需要连接到服务器。如果您使用的是 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使用管理员凭据登录。您将看到类似这样的管理页面。在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/363111.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

慢动作视频怎么制作?5种方法,轻松制作慢动作视频

在短视频风靡的当下,慢动作视频凭借其独特的视觉效果和引人入胜的节奏感,成为了吸引观众眼球的利器。你是否也想知道如何制作这种令人心动的慢动作视频呢?下面教大家5种能够制作出慢动作视频的方法,一起来学习下吧。 方法一&#…

openEuler 22.03 (LTS-SP1)服务器用ntpd同步GPS时间服务器的案例

本文记录了openEuler 22.03 (LTS-SP1)的二级时间服务器用chronyd不能自动同步GPS时间服务器,改用ntpd同步GPS时间服务器成功的案例 一、环境简述 1、本环境中有两台GPS一级时间服务器,IP如下: 192.168.188.66 192.168.188.74 2、有一台o…

分布式kettle调度管理平台简介

介绍 Kettle(也称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,由Pentaho(现为Hitachi Vantara)开发和维护。它提供了一套强大的数据集成和转换功能&#xff0c…

51循迹小车(蓝牙+循迹+超声波+舵机+避障L298N)

基本驱动 L298N电机驱动模块负责供电和控制电机驱动 将电池12V供电接到12V供电上,作为输入。单片机及其他器件供电可以使用5V供电,这里的GND都接到一起。 输出A和输出B接到电机上,负责给电机供电和控制电机。 通道A使能和通道B使能以及逻…

【Confluence】markdown格式转换为Confluence

简单的文本可以使用网站来快速转换,但是发现很多格式不能正确转换,所以研究了一个Py的方法来实现,如下: 安装Py插件 本方法主要借用markdown2 来实现,开始之前需要先安装一些库。 pip install markdown2 beautiful…

TCP 和 UDP 可以同时绑定相同的端口吗?

在网络编程中,TCP和UDP都可以绑定到同一个端口上进行通信。TCP和UDP是OSI模型中的传输层协议,它们分别使用不同的端口号来区分不同的应用程序或服务。 TCP(Transmission Control Protocol)提供了面向连接的、可靠的传输服务&…

python办公自动化之excel

用到的库:openpyxl 实现效果:读取单元格的值,写入单元格 代码: import openpyxl # 打开现有工作簿 workbookopenpyxl.load_workbook(现有工作簿.xlsx) # 选择一个工作表 sheetworkbook[交易表] # 读取单元格的值 cell_valueshe…

webpack【实用教程】

基础配置 配置的拆分和合并 通常 webpack 的配置文件会有3个 webpack.common.js 公共配置(会被另外两个配置文件导入并合并)webpack.dev.js 开发环境的配置webpack.prod.js 生产环境的配置 开发环境的本地服务 在 webpack.dev.js 中配置 devServer:…

钡铼BL104智慧环保多个485采集转MQTT无线传输

PLC物联网关BL104是一款专为工业环境设计的先进协议转换网关,其集成了钡铼智能技术和环保多个485采集转MQTT无线传输功能,为工业控制系统提供了高效的数据采集、传输和管理解决方案。 技术规格与功能特点 PLC物联网关BL104采用钡铼智能技术&#xff0c…

PPT怎么录制视频?这里有你想要的答案!

“有人知道ppt怎么录制视频吗?我正在准备一个关于新产品功能介绍的演示文稿,希望能将我的ppt转化为一个专业且生动的视频讲解。我尝试了一些方法,但不知道从哪里开始。有没有哪位朋友能分享一下自己录制ppt视频的经验吗?” 在数字…

前端打包配置+nginx配置实现部署及部署地址带特定前缀的几种方式

前端打包后要部署到服务器,在浏览器中可以通过url访问到我们开发的系统,通过nginx代理在工作中是一种很常用的方式。 这里以本地为例,把本地电脑当作一个服务器,实现普通部署、带特定前缀等 前端使用vue-clivue作为例子 以下内容…

Oracle中常用内置函数

一、字符串函数 CONCAT(s1, s2):连接两个字符串s1和s2。 SELECT CONCAT(Hello, World) FROM DUAL-- 结果:Hello World --或者使用 || 操作符 SELECT Hello || World FROM DUAL -- 结果:Hello World INITCAP(s):将字符串s…

OpenHarmony 5.0 纯血鸿蒙系统

OpenHarmony-v5.0-Beta1 版本已于 2024-06-20 发布。 OpenHarmony 5.0 Beta1 版本标准系统能力持续完善,ArkUI 完善了组件通过 C API 调用的能力;应用框架细化了生命周期管理能力,完善了应用拉起、跳转的能力;分布式软总线连接能力…

如何找合适的C++项目给自己的简历加分?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C的工作多种多样&#x…

Str.format()方法

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 在Python2.6之后,提供了字符串的format()方法对字符串进行格式化操作。format()功能非常强大,格式也比较复杂&…

MobPush iOS端海外推送最佳实现

推送注册 在AppDelegate里进行SDK初始化&#xff08;也可以在Info.plist文件中进行AppKey&#xff0c;AppSecret的配置&#xff09;并对通知功能进行注册以及设置推送的环境和切换海外服务器等&#xff0c;参考如下步骤代码&#xff1a; <span style"background-colo…

文心一言 VS 讯飞星火 VS chatgpt (291)-- 算法导论21.3 4题

四、假设想要增加一个 PRINT-SET(x) 操作&#xff0c;它是对于给定的结点 x 打印出 x 所在集合的所有成员&#xff0c;顺序可以任意。如何对一棵不相交集合森林的每个结点仅增加一个属性&#xff0c;使得 PRINT-SET(x) 所花费的时间同 x 所在集合元素的个数呈线性关系&#xff…

C++ | Leetcode C++题解之第187题重复的DNA序列

题目&#xff1a; 题解&#xff1a; class Solution {const int L 10;unordered_map<char, int> bin {{A, 0}, {C, 1}, {G, 2}, {T, 3}}; public:vector<string> findRepeatedDnaSequences(string s) {vector<string> ans;int n s.length();if (n < L…

内网穿透实现方案(免费版)_免费内网穿透

#巴比达内网穿透——我的网络救星# 作为一个常常在网络世界里摸索的人&#xff0c;我一直在寻找一款真正好用的内网穿透工具。相信很多朋友都和我有过一样的经历&#xff0c;为了找到合适的工具&#xff0c;试了一个又一个&#xff0c;却总是失望而归。但这次&#xff0c;我真…

2024年湖北省安全员-C证证考试题库及湖北省安全员-C证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年湖北省安全员-C证证考试题库及湖北省安全员-C证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试…