Linux巩固篇015-Linux Postifx 与 Dovecot 部署邮件系统

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 纸上得来终觉浅,绝知此事要躬行

前言

身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。

常用命令汇总

电子邮件系统

邮件协议

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出 的电子邮件,占用服务器的 25/TCP 端口。

邮局协议版本 3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服 务器的 110/TCP 端口。

Internet 消息访问协议版本 4(Internet Message Access Protocol 4):用于在本地主 机上访问邮件,占用服务器的 143/TCP 端口。

image.png

部署基础的电子邮件系统

image.png

1.配置服务器主机名称

[root@localhost named]# hostnamectl set-hostname "mail.linux.com"

[root@localhost named]# hostname

mail.linux.com

2.清空 iptables 防火墙默认策略

iptables -F

3.为电子邮件系统提供域名解析(从安装dns开始,加黑色字体为修改或添加部分,请自行甄别,加省略号的是保持上述内容,额外添加,不是直接都删了加省略号,本台服务器IP为192.168.227.136

[root@localhost named]#  yum install bind-chroot -y

[root@localhost named]#  vim /etc/named.conf

...

options {

       listen-on port 53 { any; };

       listen-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; };

...

[root@localhost named]#  vim /etc/named.rfc1912.zones

...

zone "linux.com" IN {

type master;

file "linux.com.zone";

allow-update {none;};

};

[root@localhost named]#   cd /var/named/

[root@localhost named]#  cp -a named.localhost linux.com.zone

[root@localhost named]#  vim linux.com.zone  

$TTL 1D

@       IN SOA  linux.com.root.liunx.com.zone. (

                                       0       ; serial

                                       1D      ; refresh

                                       1H      ; retry

                                       1W      ; expire

                                       3H )    ; minimum

       NS     ns.linux.com.

ns      IN A    192.168.227.136

@       IN MX 10        mail.linux.com.

mail    IN A    192.168.227.136

[root@localhost named]#   systemctl restart named

[root@localhost named]#   systemctl enable named

[root@localhost named]#  vi /etc/resolv.conf  

search linux.com

nameserver 192.168.227.136

[root@localhost named]#  vi /etc/sysconfig/network-scripts/ifcfg-ens33

...

PEERDNS=no

DNS1=192.168.227.136

[root@localhost named]#  systemctl restart network

配置 Postfix 服务程序

1.安装 Postfix 服务程序

[root@localhost named]#  yum install postfix -y

2.配置 Postfix 服务程序

image.png

[root@localhost named]#  vim /etc/postfix/main.cf

以下需要添加五处对应参数配置

image.png

image.png

...

myhostname = mail.linux.com

...

mydomain = linux.com

...

myorigin = $mydomain

...

inet_interfaces = all

...

mydestination = $myhostname,$mydomain

...

3.创建电子邮件系统的登录账户

[root@localhost named]#  useradd boss

[root@localhost named]#  echo "linux" | passwd --stdin boss

[root@localhost named]#  systemctl restart postfix

[root@localhost named]#  systemctl enable postfix

创建电子邮件系统的登录账户

1.安装 Dovecot 服务程序软件包

[root@localhost named]#   yum install dovecot -y

2.配置部署 Dovecot 服务程序

[root@localhost named]#  vim /etc/dovecot/dovecot.conf

image.png

...

protocols = imap pop3 lmtp

disable_plaintext_auth = no

...

login_trusted_networks = 192.168.227.0/24 # 设置允许登录的网段地址

...

3.配置邮件格式与存储路径

[root@localhost named]#  vim /etc/dovecot/conf.d/10-mail.conf

image.png

...

  mail_location = mbox:~/mail:INBOX=/var/mail/%u

...

[root@localhost named]# su - boss

[boss@localhost ~]$ mkdir -p mail/.imap/INBOX

[boss@localhost ~]$ exit

logout

[root@localhost named]# systemctl restart dovecot

[root@localhost named]# systemctl enable dovecot

Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.

测试电子邮件系统

1.Windows 7 系统部署

阿里云盘outlook+iso https://www.aliyundrive.com/s/sP48YMzaAww 提取码: iz36

如果iso无法使用将下方链接放到迅雷下载中下载iso

ed2k://|file|cn_windows_7_enterprise_with_sp1_x64_dvd_u_677685.iso|3265574912|E9DB2607EA3B3540F3FE2E388F8C53C4|/

下载完毕后新建虚拟机即可

安装途中需要产品秘钥

J8D39-J2WM3-6368H-JV8G9-BYJJQ

image.png

2.安装outlook软件

关闭虚拟机,打开虚拟机设置,将CD和软盘改为自动

image.png

开机,然后打开安装vm tool

image.png

开始安装

image.png

等待一会选择经典安装

image.png

出现了如下报错,是因为版本问题导致驱动无法在线安装,我们加一个补丁

image.png

我们在虚拟机上下载一下补丁,现在虚拟机还不能上网,我们调一下,dns是宿主机ip

image.png

然后输入如下网址,下载补丁并且安装,并且重启

http://res.extapps.com/patch/w7/kb4474419_extapps.com.zip

image.png

继续重复安装点击左上角虚拟机,和上边步骤一样

image.png

完成安装并且重启

image.png

添加相关共享文件,然后重启,把outlook放到里边去

image.png

在网络中心查看并提取压缩文件

image.png

点击setup安装,安装完毕后打开outlook2010

image.png

下一步并添加账户,相关信息是上边服务器的信息

boss

boss@linux.com

linux

linux

image.png

修改dns,改为服务器ip:192.168.227.136

image.png

建立连接状态

image.png

完成验证

image.png

向其他信箱发送邮件

image.png

切换回邮箱服务器服务器

[root@localhost named]# mail

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/root": 1 message 1 new

>N  1 boss                  Tue Jul  4 01:41  95/3028  "测试"

& 1

Message  1:

From boss@linux.com  Tue Jul  4 01:41:59 2023

Return-Path:

X-Original-To: root@linux.com

Delivered-To: root@linux.com

From: "boss"

To:

Subject: 测试

Date: Tue, 4 Jul 2023 16:41:59 +0800

Content-Type: multipart/alternative;

boundary="----=_NextPart_000_0001_01D9AE96.73ED28B0"

X-Mailer: Microsoft Outlook 14.0

Thread-Index: AdmuU0U8uXxpOTL1T2WDNZd2KPndEQ==

Content-Language: zh-cn

Status: R

Content-Type: text/plain;

charset="gb2312"

测试成功

image.png

设置用户别名信箱

用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户 以接受发送的邮件,从而保证自身的邮件地址不被泄露

用bin发一个

image.png

服务器收到信息

[root@localhost named]# mail

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/root": 2 messages 1 new

   1 boss                  Tue Jul  4 01:41  96/3039  "测试"

>N  2 boss                  Tue Jul  4 01:52  96/3026  "bin"

这是因为我们所有的用户都在文件里存放,设置为root用户收,这时我们发现在root用户下也可以收到信息,用户别名可以是 Linux 系统内的本地用户,也可以 是完全虚构的用户名字,我们设置一个新的名字(加粗)

[root@localhost named]# cat /etc/aliases

#

#  Aliases in this file will NOT be expanded in the header from

#  Mail, but WILL be visible over networks or from /bin/mail.

#

# >>>>>>>>>> The program "newaliases" must be run after

# >> NOTE >> this file is updated for any changes to

# >>>>>>>>>> show through to sendmail.

#

# Basic system aliases -- these MUST be present.

mailer-daemon: postmaster

postmaster: root

# General redirections for pseudo accounts.

weihongbin: root

bin:  root

执行以下命令生效

[root@localhost named]# newaliases

我们用客户端再发一封关于weihongbin用户的邮件

image.png

再往服务器上查询(加粗为相关新邮件)

[root@localhost named]# mail

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/root": 3 messages 1 new 2 unread

   1 boss                  Tue Jul  4 01:41  96/3039  "测试"

U  2 boss                  Tue Jul  4 01:52  97/3036  "bin"

>N  3 boss                  Tue Jul  4 01:58 170/6875  "转发: 测试魏红斌"

结语

简问简答

1.电子邮件服务与 HTTP、FTP、NFS 等程序的服务模式的最大区别是什么?

答:当对方主机宕机或对方临时离线时,使用电子邮件服务依然可以发送数据。

2.常见的电子邮件协议有那些? 答:SMTP、POP3 和 MAP4。

3.电子邮件系统中 MUA、MTA、MDA 三种服务角色的用途分别是什么?

答:MUA 用于收发邮件、MTA 用于转发邮件、MDA 用于保存邮件。

4.使用 Postfix 与 Dovecot 部署电子邮件系统前,需要先做什么?

答:需要先配置部署 DNS 域名解析服务,以便提供信箱地址解析功能。

5.能否让 Dovecot 服务程序限制允许连接的主机范围?

答:可以,在 Dovecot 服务程序的主配置文件中修改 login_trusted_networks 参数值即可, 这样可在不修改防火墙策略的情况下限制来访的主机范围。

6.使用 Outlook 软件连接电子邮件服务器的地址 mail.linux.com 时,提示找不到服务器 或连接超时,这可能是什么原因导致的呢?

答:很有可能是 DNS 域名解析问题引起的连接超时,可在服务器与客户端分别执行 ping  mail.linux.com 命令,测试是否可以正常解析出 IP 地址。

7.如何定义用户别名信箱以及让其立即生效?

答:可直接修改邮件别名服务的配置文件,并在保存退出后执行 newaliases 命令即可让新 的用户别名立即生效。

如果想根据教程实践的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下

入口一:新人免费试用

入口二:大学生免费试用

入口三:低价服务器购买

入口四:低价服务器购买2

入口五:建站特惠购买











目录
相关文章
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
85 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
资源调度 JavaScript Linux
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
【Azure 应用服务】本地Node.js部署上云(Azure App Service for Linux)遇到的三个问题解决之道
|
1月前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
78 41
Linux系统之部署homer静态主页
|
23天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
71 3
Linux系统之部署Linux管理面板1Panel
|
1月前
|
Web App开发 资源调度 网络协议
Linux系统之部署IP工具箱MyIP
【10月更文挑战第5天】使用Docker部署Radicale日历和联系人应用Linux系统之部署IP工具箱MyIP
81 1
Linux系统之部署IP工具箱MyIP
|
1月前
|
Linux Shell 异构计算
在linux上部署yolov5和安装miniconda3
这篇文章介绍了在Linux系统上部署YOLOv5并安装Miniconda3的步骤,包括使用wget命令下载Miniconda安装脚本、安装Miniconda、初始化Conda环境、添加镜像源等。
76 3
在linux上部署yolov5和安装miniconda3
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
48 2
|
21天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
30 3
|
22天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
38 2
|
1月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
422 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!