一、邮件服务器背景介绍

  1. 背景介绍

使用的是开源的Ewomail邮件服务器,方便QA同学在进行业务测试时,通过测试平台自动注册邮件新账号, 减少手工注册的操作。前端页面调用的底层注册邮箱就是我们即将搭建的邮件服务器。

服务访问关系

前端 -> 后端服务器 -> 邮件服务器java 服务器 -> 邮件服务器PHP服务 & 插入ewomail数据库

网络访问层面请运维 进行了特殊的处理,防止被黑客攻击,滥伐邮件

  • 只能接收到来自账号系统6台服务器发送的激活邮件,无法接受其他域名发来的邮件

  • 无法对外进行发送邮件

线上服务器部署相关

服务器部署机器:美东服务器

源代码:/root/EwoMail

Java 程序:/root/java-mail/mail-1.0.0.jar

安装Ewomail路径:/ewomail

机器配置:t3.small cpu 2核, 内存 2G

重启服务
  1. 启动ewomail
systemctl restart nginx php-fpm mysqld postfix dovecot amavisd

检查是否启动成功:

http://mail.XXX.tv:8000/ - 邮件web界面

http://mail.XXXX.tv:8030/ - 管理员界面

注:如果 http://mail.XXXX.tv:8030/ - 管理员界面 无法访问, 请检查防火墙是否关闭。重启机器以后,防火墙会自动被打开,所以需要在手动关闭下.

# 查看防火墙状态
sudo systemctl status firewalld

# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld

重启java程序

每次重启的时候, 可以删除相关 日志文件可以删除。减少存储空间。

cd /root/java-mail/

# 删除日志
rm -rf log
rm -rf mail.log 

# 重启Java服务,供odin平台调用
sudo java -jar mail-1.0.0.jar --spring.profiles.active=pro > mail.log &

二.安装步骤

需要一台干净的服务器,否则后面安装会出现各种报错,诡异的问题,无法解决和启动服务。如果不是干净的服务器,需要请运维重装系统

1.创建 /ewomail

sudo mkdir /ewomail

EwoMail安装后会把数据存放在 /ewomail 目录 建议你提前创建 /ewomail 目录,并且将硬盘容量挂载或分配到/ewomail

2.关闭selinux

sudo vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

修改前:

修改后:

保存/etc/sysconfig/selinux 的配置以后,需要重启服务器(否则后面安装ewomail会报错):

# 重启机器命令 sudo reboot

3.检查swap

[qa-t3test-use1b-1 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1800          80        1598          16         122        1572
Swap:          5119           0        5119

注:如果没有swap 对应的都是0 需要进行配置, 可以查看官方文档,进行如何配置swap

4.关闭防火墙

# 查看防火墙状态
sudo systemctl status firewalld

# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld

防火墙开启:

防火墙关闭:

注:如果不关闭后面的端口号会自动关闭无法访问,具体见FAQ部分

5.检查是否机器是否安装了mysql 和nginx

[qa-pts-awsuse1b-01 ~]$ mysql --version
-bash: mysql: command not found
[qa-pts-awsuse1b-01 ~]$ systemctl status mysql
Unit mysql.service could not be found.
[qa-pts-awsuse1b-01 ~]$ nginx -v
-bash: nginx: command not found
[qa-pts-awsuse1b-01 ~]$ systemctl status nginx
Unit nginx.service could not be found.

6.拉取最新的ewomail源代码

[qa-pts-awsuse1b-01 data]$ sudo su & cd /data
[root@qa-pts-awsuse1b-01 data]# yum -y install git
[root@qa-pts-awsuse1b-01 data]# git clone https://github.com/gyxuehu/EwoMail.git
Cloning into 'EwoMail'...
remote: Enumerating objects: 2384, done.
remote: Counting objects: 100% (454/454), done.
remote: Compressing objects: 100% (299/299), done.
remote: Total 2384 (delta 151), reused 420 (delta 151), pack-reused 1930
Receiving objects: 100% (2384/2384), 332.20 MiB | 108.67 MiB/s, done.
Resolving deltas: 100% (448/448), done.

7.修改ewomail-admin php 源代码

7.1修改ewomail-admin/core/class/SimpleCaptcha.class.php文件185行~192行

  登录时候所有的验证码都会强制变成 "hiwz"

cd /data/EwoMail/ewomail-admin
vim ewomail-admin/core/class/SimpleCaptcha.class.php

修改前:

修改后:

7.2 修改 ewomail-admin/api/User.class.php 文件82行和159行,修改创建用户逻辑

vim ewomail-admin/api/User.class.php

修改前: 82行

修改后:82行

修改前:159行

修改后:159行

7.3修改ewomail-admin/api/Admin.class.php login()方法里 第 287行和 293行

管理员登陆去掉 IP 登陆限制,防止测试平台 多人同时使用admin账号登陆出现登陆失败。注释掉 287 和293行

vim ewomail-admin/api/Admin.class.php

修改前:

修改后:

以上修改的源文件,都上传到git ,也可以直接使用git 的邮件服务器源代码进行安装ewomail。对应的版本号为1.15.1。

8.安装ewomail服务

cd /data/EwoMail/install
sh ./start.sh fluxer.tv en

安装失败:

安装成功:(重新找运维做了系统,然后按照文档装一遍就成功了)

注:如果碰到了安装失败,因为系统不是干净的。需要找运维重新安装一个新的服务器,就可以安装成功。

9.检查数据库和nginx状态

三.安装后的常规配置

修改/etc/hosts文件

sudo vim /etc/hosts 添加这行 127.0.0.1 mail.fluxer.tv fluxer.tv smtp.fluxer.tv imap.fluxer.tv

登录Ewomail服务

邮箱管理后台:http://IP:8010 (默认账号admin,密码XXXXX),这里修改成了8030的端口号,具体原因见后面

web邮件系统:http://IP:8000

测试邮件服务器是否可以正常使用

在管理员后台添加2个账号A 和B

该账号在8000 的web邮件系统进行登录,让A 账号给B账号发邮件,看内部是否可以正常收到邮件

注:如果域名和ip地址是绑定的,可以测试外部邮件给ewomail的邮件服务器发送邮件。 如果没有ip 和域名没有绑定,外部给ewomail发送邮件,邮件无法送达.

四.常见问题

1.管理员后台地址 ip:8010 无法访问。修改端口号为8030

修改后:

修改对应的8010端口号 为8030端口号

vim /ewomail/nginx/conf/vhost/ewomail-admin.conf

重启服务

# 针对V1.09+ 以上的, 可以使用这个命令,目前最新的版本是v1.15.1 systemctl restart nginx php-fpm mysqld postfix dovecot amavisd

自己本机访问,检查端口是否开放,可以访问成功。如果8030 没有开放请找运维开放端口号。(需要在服务器上启动对应的端口程序,然后在访问)

部署ewomai服务器上检查端口是否被使用

netstat -nltp |grep 8030

2.8030端口访问好好的突然就无法访问了无法连接,需要关闭服务器上的防火墙

解决方案:关闭服务器上的防火墙

# 查看防火墙状态
sudo systemctl status firewalld

# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld

3.本地服务器部署完毕添加完账号以后,账号登录提示域不允许

解决方案:

sudo vim /ewomail/www/ewomail-admin/core/config.php

修改前:

修改后:

注:如果是正式环境是mail.XXXX.tv的域名,应该不会有这个问题。因为这个是ip地址来访问的,所以出现了这个问题。 如果是用mail.XXXX.tv来访问的, 应该不会出现这个问题.

4.Ewomail邮件服务器,无法登录提示“无法连接服务器”,接口报错返回Errorcode:104

解决办法:磁盘空间满了先删除文件 + 重启相关服务

df -Th

删除置底文件下的文件(存放邮件内容的)

rm -rf /ewomail/mail/vmail/fluxer.tv

重启服务
service php-fpm restart
service mysqld restart
systemctl restart postfix dovecot amavisd

5.Ewomail邮件服务器管理员后台启动报错

解决方案:清除数据库表中的数据,然后再重启服务

第一步:连接数据库

数据库查看:cat /ewomail/config.ini

[root@qalme-lm-1 ewomail]# cat config.ini
domain:fluxer.tv
mysql-root-password:fKyWwuHjRvuL3vxl
mysql-ewomail-password:L1CgESpcs9Vf7A6y
mysql -hlocalhost -uewomail -pL1CgESpcs9Vf7A6y

第二步:清除i_admin_log表中的数据

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| ewomail      |
| mysql       |
| performance_schema |
| test        |
+--------------------+
5 rows in set (0.00 sec)

mysql> use ewomail;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_ewomail |
+-------------------+
| i_admin      |
| i_admin_group   |
| i_admin_log    |
| i_admin_menu   |
| i_aliases     |
| i_bcc_user    |
| i_domains     |
| i_mail_config   |
| i_quota      |
| i_system_config  |
| i_users      |
+-------------------+
11 rows in set (0.00 sec)

mysql> select * from i_admin_log order by ctime desc
  -> ;
ERROR 145 (HY000): Table './ewomail/i_admin_log' is marked as crashed and should be repaired
mysql> truncate TABLE i_admin_log
  -> ;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from i_admin_log;
Empty set (0.00 sec)




6.Ewomail邮件服务器无法收取到外部发来的邮件。但是可以正常的外部发邮件

解决方案:重启机器 + 重启服务

# 重启机器
reboot

# 重启邮件服务器
service php-fpm restart
service mysqld restart
systemctl restart postfix dovecot amavisd

# 检查邮件服务器状态
postsuper -d ALL
systemctl status postfix

五.帮助文档

1.官方文档

安装 - EwoMail邮件服务器icon-default.png?t=O83Ahttp://doc.ewomail.com/docs/ewomail/install

2.网友搭建

EwoMail开源邮件服务器软件 - sing1122 - 博客园icon-default.png?t=O83Ahttps://www.cnblogs.com/a154172/articles/14734188.html

Logo

一站式 AI 云服务平台

更多推荐