企业邮件讲解
创始人
2024-04-30 08:10:51
0

企业邮件讲解

1、邮件的概述

电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序、电子邮箱等。为用户提供基于 E-mail 服务的电子邮件系统,人们通过访问服务器实现邮件的交换;

常见的邮件服务器

  • 服务器端:
    • Sendmail:资格最古老,运行稳定,但安全性欠佳
    • Postfix:采用模块化设计,在投递效率、稳定性、性能及安全性方面表现优秀,与 sendmail 保持足够的兼容性。
    • Qmail:采用模块化设计,速度快、执行效率高,配置稍微复杂点
  • 客户端:都是用来收邮件的客户端!
    • Outlook:
    • foxmail
    • 浏览器:

邮件的相关协议

  • SMTP 简单邮件传输协议(发邮件)TCP 25 端口,加密时使用 TCP 465 端口
  • POP3 第三版邮局协议(收邮件)TCP 110 端口,加密时使用 TCP 995 端口
  • IMAP4 第四版互联网邮件访问协议(收邮件)TCP 143 端口,加密时使用 TCP 993 端口

软件相关讲解

  • 软件名:Postfix
  • 主目录:/etc/postfix
  • 主配置文件:main.cf
    • myhostname:邮件服务器主机名
    • mydomain:邮件域
    • myorigin:设置允许发信的用户的邮件域
    • mydestination:设置允许收信的用户的邮件域

2、企业邮件的搭建

搭建一个DNS服务器

#关闭firewalld
[root@node0 ~]# systemctl stop firewalld
[root@node0 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.#安装bind
[root@node0 ~]# yum -y install bind#修改主配置文件-->修改监听端口
[root@node0 ~]# vim /etc/named.conf 
........
options {listen-on port 53 { any; };		#这里改为anylisten-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file  "/var/named/data/named.recursing";secroots-file   "/var/named/data/named.secroots";allow-query     { any; };		#这里也需要改为any#使用 extmail.org 作为解析域,只保留正向解析即可
[root@node0 ~]# vim /etc/named.rfc1912.zones
............
zone "extmail.org" IN {type master;file "extmail.localhost";allow-update { none; };
};#修改数据文件
[root@node0 ~]# cd /var/named/
[root@node0 named]# cp -a named.localhost extmail.localhost
[root@node0 named]# vim extmail.localhost 
$TTL 1D
@       IN SOA  extmail.org. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      dns.extmail.org.MX 3    mail.extmail.org.
dns     A       192.168.75.130
mail    A       192.168.75.130#重启服务
[root@node0 named]# systemctl start named#测试dns服务器
[root@node0 named]# yum -y install bind-utils-9.9.4-72.el7.x86_64 #到这里为止,搭建成功
[root@node0 named]# nslookup mail.extmail.org
Server:		127.0.0.1
Address:	127.0.0.1#53Name:	mail.extmail.org
Address: 192.168.75.130

安装gcc等必要的依赖软件

#安装gcc和mysql
[root@node0 ~]# yum -y install gcc* mysql-server mysql httpd mailx#启动
[root@node0 ~]# systemctl start httpd
[root@node0 ~]# systemctl start mariadb#准备好必要的源码包
[root@node0 ~]# ls
anaconda-ks.cfg  extmail-1.2.tar.gz  extman-1.1.tar.gz  Unix-Syslog-1.1.tar.gz

把web页面放到Apache的页面目录下

#创建一个目录
[root@node0 ~]# mkdir -p /var/www/extsuite#解压目录
[root@node0 ~]# tar -xf extmail-1.2.tar.gz 
[root@node0 ~]# tar -xf extman-1.1.tar.gz #把这两个解压的内容移动到创建的目录上
[root@node0 ~]# cp -a extmail-1.2 /var/www/extsuite/extmail
[root@node0 ~]# cp -a extman-1.1 /var/www/extsuite/extman#进入到目录,注意一下权限和属主的问题
[root@node0 extsuite]# chown -R root:root extmail/
[root@node0 extsuite]# chown -R root:root extman
[root@node0 extsuite]# ll
总用量 4
drwxr-xr-x  7 root root 4096 12月 25 2009 extmail
drwxr-xr-x 11 root root  240 12月 24 2009 extman

将成品的数据库文件导入到Mysql当中(没有设置密码,使用空密码登录)

#将./extman/docs 中模板和数据导入到数据库中
[root@node0 extsuite]# cd /var/www/extsuite/
[root@node0 extsuite]# mysql < /var/www/extsuite/extman/docs/extmail.sql#修改另外一个文件
[root@node0 extsuite]# vim ./extman/docs/init.sql 
..........
INSERT INTO `manager` VALUES ('root@extmail.org','123456','admin','root','Super User','my question','my answer'
,'0','2007-02-14 15:10:04','2010-11-08',1);#然后再导入
[root@node0 extsuite]# mysql < ./extman/docs/init.sql

将邮件模板拷贝到邮件服务器的主目录下

[root@node0 extsuite]# cd /var/www/extsuite/extman/docs/
[root@node0 docs]#  cp -a mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

创建映射用户和修改配置文件

[root@node0 docs]# useradd -u 600 -s /sbin/nologin vmail
[root@node0 docs]# vim /etc/postfix/main.cf
..........
113 inet_interfaces = all	#将此选项取消注释
.....
116 #inet_interfaces = localhost #将此选项注释掉#在尾部添加下列内容
680 virtual_mailbox_base = /home/vmail
681 virtual_uid_maps = static:600
682 virtual_gid_maps = static:600
683 virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
684 virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
685 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf#重启服务,验证测试和查看结果
[root@node0 docs]# systemctl restart postfix.service #验证
[root@node0 docs]# echo "hello " | mail -s test suport@extmail.org

搭建收件方配置

安装过dovecot相关的软件

[root@node0 ~]# yum -y install dovecot dovecot-devel dovecot-mysql
[root@node0 ~]# systemctl start dovecot

配置dovecot能够去到数据库里边读取数据

#修改配置文件
[root@node0 ~]# vim /etc/dovecot/conf.d/10-mail.conf #添加一下两行数据
mail_location = maildir:/home/vmail/%d/%n/Maildir 
#定义 dovecot 查询邮件的位置(顶头写)
first_valid_uid = 600#再修改另外一个配置文件
[root@node0 ~]# vim /etc/dovecot/conf.d/10-auth.conf 
.........##取消调用数据库的记录注释
#!include auth-system.conf.ext#第三个修改数据库连接的配置文件
[root@node0 ~]# cp -a /usr/share/doc/dovecot-2.2.36/example-config/dovecot-sql.conf.ext  /etc/dovecot/
......
[root@node0 ~]# vim /etc/dovecot/dovecot-sql.conf.ext #将下列内容加入配置文件即可
.........
driver = mysql		#驱动类型
connect = host=localhost dbname=extmail user=extmail password=extmail		#连接数据库的信息
default_pass_scheme = MD5
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u' AND domain = '%d'
#验证登录密码的查询命令
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
#查询虚拟用户对应的邮箱目录

重启dovecot验证是否能够连接

#安装telnet
[root@node0 ~]# yum -y install telnet

3、mail+web页面

修改/etc/httpd/conf/httpd.conf配置文件,能加载邮件 web页面

NameVirtualHost *:80 	#取消注释,开启虚拟主机功能#添加一下内容
DocumentRoot /var/www/extsuite/extmail/htmlServerName mail.extmail.orgscriptalias /extmail/cgi /var/www/extsuite/extmail/cgialias /extmail /var/www/extsuite/extmail/htmlscriptalias /extman/cgi /var/www/extsuite/extman/cgialias /extman /var/www/extsuite/extman/htmlsuexecusergroup vmail vmail

extmail 目录中更改 cgi 的属组属主,让 vmail 有权限执行

[root@node0 ~]# chown -R vmail.vmail cgi/
[root@node0 ~]# cp -a webmail.cf.default webmail.cf
[root@node0 ~]# vim webmail.cf
SYS_MAILDIR_BASE = /home/vmail #邮件存放目录
SYS_CRYPT_TYPE = plain #加密类型
SYS_MYSQL_USER = extmail #MySQL 用户名
SYS_MYSQL_PASS = extmail #MySQL 密码

extman 中更改 cgi 的属组属主,让 vmail 有权限执行

[root@node0 ~]# chown -R vmail.vmail cgi/
[root@node0 ~]# cp -a webman.cf.default webman.cf
[root@node0 ~]# vim webman.cf
SYS_MAILDIR_BASE = /home/vmail
SYS_SESS_DIR = /tmp
SYS_CAPTCHA_ON = 0 #生产环境中开启,实验环境无法显示校验码
SYS_CRYPT_TYPE = plain

安装 Unix-Syslog 软件

#解压缩 Unix-Syslog-1.1.tar.gz 软件
yslog-1.1
# perl Makefile.PL
# make
# make install#剩余的就是验证
在浏览器上访问,windows 测试需要手动指向 dns 服务器

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...