Postal 是一個完整且功能齊全的開源郵件遞送服務器,供網站和 Web 服務器使用。 它由 aTech Media 開發,以滿足他們自己的郵件處理需求,但後來,他們決定將其作為開源項目發布給社區。 公司越來越普遍地使用自己的郵件服務器並實施電子郵件營銷。
我個人認為最適合執行這些任務的工具之一是 Sendgrid,但不幸的是,它是私有的。 想想 Sendgrid、Mailgun 或 Postmark,但 Postal 是一個出色的替代和開源郵件服務器,具有非常有趣的功能,並且可以輕鬆安裝在我們的 Web 服務器上。 該工具有一個很好的界面,已經過 6 個月的測試,還有一個簡單的 API,可以讓我們更自動地發送和接收電子郵件。 各種應用程序捕獲肯定會對這個優秀的開源消息傳遞服務器的特性提供更詳細的解釋。
先決條件
在本文中,我們將介紹使用 Ubuntu 16.04 LTS 及其其他依賴項安裝和設置郵政郵件遞送系統的步驟。 建議在具有至少 8GB 內存和足夠磁盤空間的 Ubuntu 16.04 服務器上運行 Postal,以存儲所需的存儲庫。 系統上至少需要配置兩個靜態 IP 地址。
- Ruby 2.3 或更高版本
- MySQL 或 MariaDB 數據庫服務器
- RabbitMQ服務器
- Node.js(用於 javascript 編譯)
- Git(用於訪問存儲庫)
1) 安裝 Ruby
在使用“root”用戶憑據登錄後運行以下命令以安裝軟件屬性包,然後為 Ruby 添加新的存儲庫,然後更新您的系統。
# apt install software-properties-common
# apt-add-repository ppa:brightbox/ruby-ng
# apt update
一旦您的系統完全更新為最新的更新和補丁,那麼我們就可以通過發出以下命令來安裝所需版本的 Ruby。
# apt install ruby2.3 ruby2.3-dev build-essential
2) 安裝 MySQL/MariaDB
要在 Ubuntu 16.04 的基本操作系統上安裝所需版本的 MySQL / MariaDB,請使用以下命令導入其 RSA 密鑰和系統更新。
# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.coreix.net/mariadb/repo/10.1/ubuntu xenial main'
# apt update
現在,我們可以使用以下命令安裝 MariaDB 服務器。
# apt install mariadb-server libmysqlclient-dev
按“Y”繼續安裝 MariaDB 服務器及其所需的依賴項。 在安裝設置期間,您還需要配置 root 密碼以連接到其控制台。
3) 安裝RabbitMQ
要在 Ubuntu 16.04 上安裝 RabbitMQ,首先,我們將下載其“apt-key”,然後使用以下命令將其添加到 apt 存儲庫中。
# curl -sL https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
# add-apt-repository 'deb https://www.rabbitmq.com/debian/ testing main'
現在更新您的系統,然後您將很高興使用以下命令在 Ubuntu 16.04 上安裝 RabbitMQ。
# apt update
# apt install rabbitmq-server
按“Y”繼續在您的系統上安裝 RabbitMQ。
4) 安裝 Node.JS
Node.js 可以通過使用下面的“apt”命令來安裝。
# apt install nodejs
5) 安裝 Git
可以使用下面的“apt”命令安裝 Git 包。
# apt install git
現在我們已經在我們的系統上安裝了所有先決條件,這使我們可以開始安裝和設置郵政電子郵件服務器。
如何在 Ubuntu 16.04 上安裝 Postal
完成在 Ubuntu 16.04 上運行 Postal 的先決條件後,安裝步驟非常簡單。 讓我們從使用 MySQL 準備其數據庫開始的安裝步驟開始。
1) 設置郵政數據庫
使用root用戶憑據連接MySQL服務器控制台,創建對應的數據庫,為郵政郵件服務器的順利運行做好準備。
# mysql -u root -p -h 127.0.0.1
連接到 MySQL 根控制台後,使用以下命令創建一個新數據庫和一個具有安全密碼的用戶,以獲得一些適當的權限。
CREATE DATABASE `postal` CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON `postal`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "password";
接下來,運行以下命令添加一個授權,允許用戶管理所有以 postal 為前綴的數據庫。 這樣,在我們授予 Postal 訪問權限後,Postal 將為您的郵件服務器處理數據庫的創建。
GRANT ALL PRIVILEGES ON `postal-%` . * to `postal`@`127.0.0.1` IDENTIFIED BY "password";
2) 設置RabbitMQ
使用以下命令創建 RabbitMQ 虛擬主機,因為它需要自己的 RabbitMQ 虛擬主機和用戶才能連接。
# rabbitmqctl add_vhost /postal
# rabbitmqctl add_user postal password
# rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*"
3) 準備你的操作系統
現在,我們將運行以下命令以在“/opt/postal”中創建一個主目錄為主目錄的新用戶,以便 postal 在我們的服務器上以其自己的用戶身份執行。
# useradd -r -m -d /opt/postal -s /bin/bash postal
4) 安裝系統範圍的 gems
接下來,我們將安裝以下兩個很少項目需要的依賴項。
# gem install bundler
# gem install procodile
5) 克隆庫
現在,我們將以您的郵政用戶身份使用以下命令將源代碼克隆到適當的目錄中,並克隆到 /opt/postal/app 目錄中。
# sudo -i -u postal git clone https://github.com/atech/postal /opt/postal/app
我們可以使用以下命令創建一個符號鏈接以從任何目錄訪問明信片。
# ln -s /opt/postal/app/bin/postal /usr/bin/postal
6) 安裝 Ruby 依賴
要安裝 Postcard 需要能夠運行的 Ruby 依賴項,我們將使用以下命令安裝使用“postal”用戶運行應用程序所需的所有必需依賴項。
# su - postal
# postal bundle /opt/postal/app/vendor/bundle
默認情況下,配置保留在存儲庫文件結構之外並存儲在“/opt/postal/config”中。 讓我們使用以下命令執行工具的初始配置。
postal initialize-config
Created example config file at /opt/postal/config/postal.yml
Created new private key for Let's Encrypt
Created new signing key for DKIM & HTTP requests
Created new private key for default fast server TLS connections
Created new self signed certificate for default fast server TLS connections
這將為您的配置創建許多文件,包括各種私鑰和證書以及默認的 postal.yml 配置文件,如圖所示。
現在打開“postal.yml”文件並將其配置為匹配您的主機名和數據庫憑據。
vim config/postal.yml
之後,我們將使用以下命令初始化數據庫和資產。
postal initialize
7) 創建初始管理員用戶
使用以下命令將指導您設置新的 admin 用戶安裝。
$ postal make-user
接下來,系統會提示您輸入電子郵件地址、名稱和密碼,然後您可以在首次登錄時使用這些。
如何開始郵政申請
為了啟動郵政應用程序,您可以簡單地使用以下命令在前台運行郵政以進行測試和開發。
postal run
一切正常後,您可以使用以下命令在後台運行郵政。
postal start
要檢查其正在運行的進程的狀態,您可以使用它的 status 命令。
postal status
Postal 管理接口和 API 應該位於 nginx 之後,因此您可以安裝它並根據需要對其進行配置以訪問 Postal 的 Web 界面。
結論
在本文的最後,您現在可以在 Ubuntu 16.04 上設置郵政郵件傳遞平台。 郵政是替代提供相同功能的雲服務的理想工具,因為它使我們能夠更好地控制和更愉快地管理我們的信息。 郵政相對於其他私人或免費解決方案有其缺點和優點,因此可以方便地分析我們的情況以確定它是否適合我們使用。 同樣,Postal 的學習路線很短,因此在受控環境中,可以對工具的使用和使用進行相當可接受的測試。 強調擁有輕量級、安全和開源消息傳遞平台的重要性很重要,但更重要的是,花時間在最適合您需求的應用程序之間進行選擇。