如何在Ubuntu 16.04和14.04上安装邮政服务器

如何在Ubuntu 16.04和14.04上安装邮政服务器。设置自己的邮件服务器,如sendgrid,mailchimp等。sendgrid mailchimp的替代方法

邮政是一个完整和功能齐全的邮件服务器,供网站和网络服务器使用。 邮政可以成为Sendgrid,Mailchimp,Mailgun和其他类似SMTP服务器的更好选择。 您可以轻松地在您的系统上托管邮政服务器,并将其用作SMTP服务器来发送应用程序电子邮件,批量电子邮件,通讯等。本教程将帮助您在Ubuntu 16.04和14.04 LTS上安装邮政服务器。 您还可以尝试使用相同的Debian和Linuxmint,并在意见中分享您的反馈意见。

先决条件

要在系统上安装邮政服务器,必须在系统上安装以下先决条件。 本教程将帮助您安装它们。

  • Ruby 2.3或更高版本
  • MySQL或MariaDB数据库服务器
  • RabbitMQ服务器
  • Node.js(用于javascript编译)
  • Git(用于访问存储库)

步骤1 - 安装基本软件包

首先,从系统上的初始包安装开始。 使用以下命令安装Git,MariaDB(MySQL)数据库服务器和Nginx Web服务器与其他依赖关系。

$ sudo apt-get install python-software-properties  software-properties-common
$ sudo apt-get install git nginx mariadb-server build-essential libmysqlclient-dev 

步骤2 - 安装Node.js

现在,在系统上安装最新的Nodejs。 使用以下命令在系统上安装Nodejs 7或访问本教程以安装最新的可用版本。

$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
$ sudo apt-get install nodejs

步骤3 - 安装Ruby 2.3

安装Node.js后,在系统上安装Ruby版本2.3或更高版本。 首先使用以下命令在您的系统中添加Ruby languege PPA。

$ sudo apt-add-repository ppa:brightbox/ruby-ng -y
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

现在,使用以下命令在系统上安装Ruby 2.3。

$ sudo apt-get update
$ sudo apt-get install -y ruby2.3 ruby2.3-dev

步骤4 - 安装RabbitMQ服务器

您还需要在系统上安装RabbitMQ服务器进行消息传递。 使用以下命令启用Erlang包PPA。

$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
$ sudo dpkg -i erlang-solutions_1.0_all.deb

还可以在系统中启用RabbitMQ服务器PPA。

$ echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
$ wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

现在,您可以使用以下命令在系统上安装RabbitMQ Server软件包。 这也将安装所有的依赖项。

$ sudo apt-get update
$ sudo apt-get install erlang erlang-nox rabbitmq-server

步骤5 - 在MySQL中创建数据库

首先,在MySQL服务器中创建一个数据库,同时创建一个数据库用户,使用邮政服务器访问数据库。 另外,添加一个允许邮政管理所有以邮政为前缀的数据库的资助。

$ mysql -u root -p
Enter password:*******

mysql> CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> GRANT ALL ON `postal`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "passw0rd";
mysql> GRANT ALL ON `postal-%`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "passw0rd";
mysql> FLUSH PRIVILEGES;

步骤6 - 创建RabbitMQ VirtualHost

在此步骤中,在RabbitMQ服务器中添加一个VirtualHost,并创建一个用户帐户以通过应用程序访问它。

$ rabbitmqctl add_vhost /postal
$ rabbitmqctl add_user postal passw0rd
$ rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*"

步骤7 - 安装邮政服务器

此时,您已经完成了邮政安装的所有要求。 我们先从邮政设置的用户创建开始。 使用以下命令创建名为邮政的帐户。

$ sudo useradd -r -m -d /opt/postal -s /bin/bash postal
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ruby2.3

现在,使用以下命令克隆Github上的邮政源代码。 并在/ usr / bin /目录下添加邮政二进制文件的软链接以全局访问命令。

$ sudo -i -u postal git clone https://github.com/atech/postal /opt/postal/app
$ ln -s /opt/postal/app/bin/postal /usr/bin/postal

要配置邮政服务,您需要在系统上安装bundler和procodile。 安装它们:

$ sudo gem install procodile bundler

现在,切换到邮政用户,并使用以下命令完成所有安装。

$ su - postal
$ postal bundle /opt/postal/app/vendor/bundle
$ postal initialize-config
$ postal initialize
$ postal start

步骤8 - 创建邮政管理员用户

现在运行邮政用户用户创建第一个邮政管理员帐户。 该帐户将被使用最新的在Potal仪表板上登录。

$ postal make-user 

Postal User Creator
Enter the information required to create a new Postal user.
This tool is usually only used to create your initial admin user.

E-Mail Address      : [email protected]
First Name          : Rahul
Last Name           : Kumar
Initial Password:   : *********

User has been created with e-mail address [email protected]

步骤9 - 检查邮政运行状态

在这个阶段,你有一个运行的邮政服务器。 要确保一切正常,请使用以下命令。 你会在那里找到以下5个服务。 确保所有服务都处于运行阶段。

$ postal status

命令输出如下。

Procodile Version   1.0.16
Application Root    /opt/postal/app
Supervisor PID      28022
Started             2017-05-16 18:41:53 +0530

|| web
|| Quantity            1
|| Command             bundle exec puma -C config/puma.rb
|| Respawning          5 every 3600 seconds
|| Restart mode        usr1
|| Log path            none specified
|| Address/Port        none
|| => web.1            Running      18:41        pid:28028    respawns:0      port:-        tag:-

|| worker
|| Quantity            1
|| Command             bundle exec rake postal:worker
|| Respawning          5 every 3600 seconds
|| Restart mode        start-term
|| Log path            none specified
|| Address/Port        none
|| => worker.1         Running      18:41        pid:28030    respawns:0      port:-        tag:-

|| cron
|| Quantity            1
|| Command             bundle exec rake postal:cron
|| Respawning          5 every 3600 seconds
|| Restart mode        term-start
|| Log path            none specified
|| Address/Port        none
|| => cron.1           Running      18:41        pid:28032    respawns:0      port:-        tag:-

|| smtp
|| Quantity            1
|| Command             bundle exec rake postal:smtp_server
|| Respawning          5 every 3600 seconds
|| Restart mode        usr1
|| Log path            none specified
|| Address/Port        none
|| => smtp.1           Running      18:41        pid:28034    respawns:0      port:-        tag:-

|| requeuer
|| Quantity            1
|| Command             bundle exec rake postal:requeuer
|| Respawning          5 every 3600 seconds
|| Restart mode        term-start
|| Log path            none specified
|| Address/Port        none
|| => requeuer.1       Running      18:41        pid:28036    respawns:0      port:-        tag:-

步骤10 - 为邮政设置NGINX

Postal提供了一个Nginx配置文件。 只需将此文件复制到您的Nginx服务器。 您可以简单地替换默认的Nginx配置文件或创建一个新的文件。

$ cp /opt/postal/app/resource/nginx.cfg /etc/nginx/sites-available/default

邮政预设仅适用于SSL。 因此,创建一个自签名SSL来访问邮政信息中心,或者您可以从“ 我们加密”获取免费的有效证书。

$ sudo mkdir /etc/nginx/ssl/
$ sudo cd /etc/nginx/ssl/
$  openssl req -x509 -nodes -newkey rsa:4096 -keyout postal.key -out postal.crt

最后,重新加载Nginx Web服务器。

$ sudo service nginx reload

现在使用https访问您的服务器。 您将获得Postal仪表板登录屏幕。 输入您在第8步中创建的管理员帐户详细信息。

步骤11 - 配置邮政仪表板

此时,您有一个正在运行的邮政服务器。 现在你需要配置这个来发送电子邮件。 首先,您需要了解设置。 主要有三个部分

  • 组织=>您可以创建多个组织,例如一个客户端的组织。
  • 邮件服务器帐户=>每个组织都可以有多个邮件服务器帐户。 您可以将它们保持在实时或开发模式。 例如,组织可以为每个生产团队分配一个邮件服务器。
  • Domains =>每个邮件服务器可以有多个域。 请记住,邮政将接收来自地址的电子邮件,并添加到此处进行验证。

创建组织

所以让我们在登录后创建你的第一个组织。 单击创建第一个组织按钮。 在输入框中输入组织名称和短名称。

构建邮件服务器

您将自动切换到新创建的组织,现在单击构建您的第一个邮件服务器按钮。 输入邮件服务器的名称,短名称和邮件服务器的模式。 有两种类型的模式可用

  • Live =>电子邮件将正常工作并达到目的地。
  • 发展=>发送的电子邮件将显示在邮政信息中心,但实际上并未发送给最终用户

添加域

现在添加您需要发送电子邮件的第一个域名。 这将显示更新添加的域所需的DNS设置。 更新DNS服务器中的所有设置并完成此步骤。

创建凭据

您还需要为邮件服务器创建凭据。 有两种类型的creadentials。

  • SMTP =>这些凭证将需要通过SMTP协议发送电子邮件,例如linux邮件命令,PHPMailer等。
  • API =>这些是通过HTTP api发送邮件所必需的。

步骤12 - 用客户端测试邮政

Postal为多种编程语言提供客户端库。 从下面的链接下载所需的库,并测试设置。

https://github.com/atech