邮政是一个完整和功能齐全的邮件服务器,供网站和网络服务器使用。 邮政可以成为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为多种编程语言提供客户端库。 从下面的链接下载所需的库,并测试设置。