配置与管理电子邮件服务

配置与管理电子邮件服务

1,电子邮件由邮件头和邮件内容组成。

#电子邮件头格式
用户账号名称@电子邮件域名
例如:root@hiliti.com

2,**邮件系统组成:**用户代理MUA,邮件传输代理MTA,邮件投递代理MDA。采用客/服模式。

3,协议:SMTP协议(默认端口为25);POP协议(默认端口为110);IMAP协议(默认端口为143)。

安装电子邮件服务

#sendmail服务安装
[root@localhost ~]# yum -y install sendmail
[root@localhost ~]# rpm -qa |grep sendmail
sendmail-8.14.7-6.el7.x86_64
start/status/restart/enbale/disable/stop

#安装dovecot软件包,用于pop和IMAP服务
[root@localhost ~]# yum -y install dovecot
[root@localhost ~]# systemctl start dovecot


#sendmail的配置文件:/etc/mail

image.png

配置电子邮件服务器

#不用配置sendmail的主配置文件,只需修改数据库文件即可。
#一般步骤:

image.png

1,sendmail.cf和sendmail.mc文件

sendmail.cf是自动生成的,用户只需编辑sendmail.mc文件,再通过m4命令将sendmail.mc文件编译成sendmail.cf。

1#开启sendmail服务的网络接口
118 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
改为:
118 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl


2,#设置SMTP的用户认证
[root@localhost ~]# vim /etc/mail/sendmail.mc
 52 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 53 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
改为:(去掉前面的dnl)
 52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

2,配置主机别名和域名

[root@localhost ~]# vim /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
school.com

#重启sendmail服务,该邮件服务器就可以接收目标位@school.com 的邮件。反之,将拒接接收对方发来的邮件

3,配置访问控制

access.db数据库可实现基于主机地址的访问控制,access.db数据库默认开启了对邮件服务器本机用户的邮件投递。利用makemap命令生成access.db数据库

格式:
[标签][参数]	[制约关键字]

#利用access文件生成access.db 文件命令如下:
#makemap hash /etc/mail/access.db < /etc/mail/access

image.png

4,设置虚拟域用户

虚拟域用户的数据库文件默认是**/etc/mail/virtusertable.db**,它是由**/etc/mail/virtusertable文件生成**。

格式:
<虚拟域地址>	<真实地址>

#生成文件命令如下:
#makemap hash /etc/mail/virtusertable.db < 	/etc/mail/virtusertable

配置电子邮件客户端

Linux环境下,使用telnet命令收发邮件。

#安装软件包
[root@localhost ~]# yum -y install xinetd
#安装telnet服务端软件包,与客户端
[root@localhost ~]# yum -y install telnet-server
[root@localhost ~]# yum -y install telnet
#启动telnet服务
[root@localhost ~]# systemctl start xinetd
1#使用helo命令和连接上的SMTP服务器表名身份
2#指明邮件的发/收件人
mail from: <gacl@sohu.com>
rcpt to: <xdp_gacl@ sina.cn>
3#编写邮件内容
输入data命令
编写邮件内容
输入"."符号,表示邮件服务器邮件内容已经编写完
4#输入quit命令断开连接
5#输入用户名和密码登录POP3 服务器
user username	//登录邮箱的用户名
pass password	//密码
6#使用rter命令收取邮件
rter 数字		//收取邮件,rter1表示收取邮箱当中的第一封邮件
stat	//返回邮箱里面的邮件数据和邮件占用的空间大小信息
list 数字		//返回某一封邮件的统计信息
7#断开POP3的连接
quit

返回的状态码有
220:服务就绪
250:请求邮件正确
235:认证通过
221:正在处理3
54:开始发送数据,结束以.
500语法错误
550:命令不能执行
552:中断处理:用户超出文件空间

综合案例

`某公司现需搭建一台Email 服务器,该Email服务器所在域为hbliti.com,为该Email服务器设置虚拟域school.com,并为cn@ hblti. com指定虚拟域别名为cn@school.com。
各类服务器的详细信息如表9-2所示:s

image.png

1#首先在email服务器正确配置yum源后,安装emils相关软件包
[root@localhost ~]# yum -y install sendmail
[root@localhost ~]# yum -y install sendmail-cf
[root@localhost ~]# yum -y install dovecot
[root@localhost ~]# yum -y install m4

2#配置DNS服务器,并编辑DNS服务器的全局配置文件named.conf
[root@localhost ~]# yum -y install bind
[root@localhost ~]# vim /etc/named.conf
 13         listen-on port 53 { any; };
 21         allow-query     { any; };

3,#改DNS服务器的主要配置文件named.zones(添加进去的)
[root@localhost ~]# cd /etc/
[root@localhost etc]# vim named.rfc1912.zones
zone "school.com" IN {
        type master;
        file "school.com.zone";
        allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.100.zone";
        allow-update { none; };
};

4,#在DNS文件存放目录/var/named/下创建正向解析文件(school.com.zone)和反向解析文件(192.168.100.zone)
[root@localhost etc]# cd /var/named/
[root@localhost named]# cp -p named.localhost school.con.zone
[root@localhost named]# cp -p named.loopback 192.168.100.zone
[root@localhost named]# vim school.con.zone
MYMTTL 1D
@       IN SOA  school.com.     root.school.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      dns.school.com.
@       IN      MX  10  mail.school.com.
dns     IN      A       192.168.100.254
mail    IN      A       192.168.100.254
smtp    IN      A       192.168.100.254
pop3    IN      A       192.168.100.254

[root@localhost named]# vim 192.168.100.zone
MYMTTL 1D
@       IN SOA  school.com.     root.school.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      dns.school.com.
@       IN      MX      10 mail.school.com.
254     IN      PTR     dns.school.com.
254     IN      PTR     mail.school.com.
254     IN      PTR     smtp.school.com.
254     IN      PTR     pop3.school.com.



5,#关闭防火墙,并设置SHlinux为允许
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]# getenforce
Permissive

6#修改/etc/mail/loacl-host-names文件,内容如下
[root@localhost named]# vim /etc/mail/local-host-names
school.com
192.168.100.254		

7#修改/etc/mail/access文件,内容如下(添加进去的)
[root@localhost named]# vim /etc/mail/access
Connect:school.com                      RELAY
Connect:192.168.100.254                 RELAY

8#使用makemap命令生成/etc/mail/access.db文件,命令如下
[root@localhost named]# makemap hash /etc/mail/access.db < /etc/mail/access

9#编辑虚拟域用户文件/etc/mail/vaitusertable文件,并生成/etc/mail/virtusertable.db文件
[root@localhost named]# vim /etc/mail/virtusertable
cn@school.com user1@hbliti.com
[root@localhost named]# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

10#编辑/etc/mail/sendmail.mc文件,内容如下
[root@localhost named]# vim /etc/mail/sendmail.mc
 52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
118 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
157 LOCAL_DOMAIN(`school.com')dnl


11,#建立用户
[root@localhost named]# useradd client1
[root@localhost named]# useradd client2
[root@localhost named]# passwd client1			//密码为1
[root@localhost named]# passwd client2

12,#编辑/etc/dovecot/dovecot.conf,内容如下
[root@localhost named]# vim /etc/dovecot/dovecot.conf
 24 protocols = imap pop3 lmtp
 48 login_trusted_networks = 192.168.100.0/24

13,#编辑/etc/dovecot/conf.d/10-mail.conf文件,内容如下
[root@localhost named]# vim /etc/dovecot/conf.d/10-mail.conf
 25 mail_location = mbox:~/mail:INBOX=/var/mail/%u
322 mbox_write_locks = fcntl

14,#创建client1和client2用户的邮箱路径
[root@localhost named]# mkdir -p /home/client1/mail/.imap/INBOX/
[root@localhost named]# mkdir -p /home/client2/mail/.imap/INBOX/

15,#修改文件/etc/skel/.bash_profile文件
[root@localhost named]# vim /etc/skel/.bash_profile
  4 if [ ! -d ~/mail/.imap/INBOX ]; then
  5         mkdir -p ~/mail/.imap/INBOX
  6 fi

16,#启动相关服务
[root@localhost named]# systemctl start named		//dns服务
[root@localhost named]# systemctl start sendmail
[root@localhost named]# systemctl start dovecot
[root@localhost named]# systemctl start saslauthd

17,#在服务端安装telnet服务,并启动telnet服务
[root@localhost ~]# yum -y install xinetd
[root@localhost ~]# yum -y install telnet-server
[root@localhost ~]# systemctl start xinetd

18,#在客户端安装telnet客户端
[root@localhost ~]# yum -y install telnet

19,#在客户端关闭防火墙,并设置shlinux为运行
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

20,#在客户端测试发送和接收邮件
[root@localhost ~]# telnet 192.168.100.254 25
Trying 192.168.100.254...
Connected to 192.168.100.254.
Escape character is '^]'.

image.png

image.png

相关推荐

  1. Odoo配置邮件服务器

    2024-03-14 00:30:02       18 阅读
  2. IMAP4揭秘:实现高效、灵活的电子邮件管理

    2024-03-14 00:30:02       22 阅读
  3. 13_1 Linux 邮件服务NTP时间服务

    2024-03-14 00:30:02       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 00:30:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 00:30:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 00:30:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 00:30:02       18 阅读

热门阅读

  1. js小知识

    2024-03-14 00:30:02       22 阅读
  2. 子查询

    2024-03-14 00:30:02       24 阅读
  3. JenKins 中的new Item各个选项应该怎选择

    2024-03-14 00:30:02       20 阅读
  4. HAProxy适配openGauss使用指导书

    2024-03-14 00:30:02       22 阅读
  5. 在Rust中,探索word到pdf的转换

    2024-03-14 00:30:02       23 阅读
  6. 英语阅读挑战

    2024-03-14 00:30:02       22 阅读
  7. 华为机试题-字符串压缩

    2024-03-14 00:30:02       21 阅读
  8. 测开面经学习笔记

    2024-03-14 00:30:02       19 阅读
  9. C++进阶学习

    2024-03-14 00:30:02       21 阅读
  10. 车规芯片为什么需要信息安全(2)

    2024-03-14 00:30:02       21 阅读
  11. 10个必知必会的SQL聚合函数

    2024-03-14 00:30:02       17 阅读