服务简介
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
邮件服务器也采用的是C/S工作模式,通过SMTP ,POP ,IMAP 协议来是实现邮件的发送和接收的。
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议 。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇 ,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP(postfix) 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。 使用的端口是25 ,SMTP信件认证协议SMTPS,使用的端口是465
POP3 是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准 , 协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上 ,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。使用的端口是110 ,POP3信件认证协议POP3S,使用的端口是995
IMAP 全称是Internet Mail Access Protocol,即交互式邮件存取协议 ,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上同时在客户端上的操作都会反馈到服务器上 ,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。 所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。将邮件留在服务器端直接对邮件进行管理、操作,比POP3更先进支持邮件头部预览主题来源,基于TCP/IP,使用143端口 ,使用的端口是110 ,IMAP信件认证协议IMAPS,使用的端口是993
POP3 和 IMAP 区别
1.IMAP客户端上收取邮件后邮件依旧保留在服务器上,同时在客户端上的操作也会保留在服务器端,POP3不会 2.IMAP更好的支持从多个设备中随时访问新邮件 3.IMAP提供的摘要游览功能可以让你阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作初是否下载的决定。 4.pop3需要下载所有的邮件,IMAP不能将所有的邮件下载,而是通过客户端直接对服务器上的邮件进行操控。所有的IMAP 可以对数据进行加密从而保证通信安全。 5.IMAP整体上为用户带来了更为便捷和可靠的的体验 ----pop3 更容易丢失邮件或者多次重复下载相同的邮件。
SASL 全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制 。在 Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器 。
案例一:mail命令的使用
安装postfix邮件发送服务包 [root@localhost ~]# yum install postfix -y 发送邮件需要启动服务,在关闭一下防火墙和selinux [root@localhost ~]# systemctl restart postfix.service [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 添加测试邮件用户 [root@localhost ~]# useradd zhangsan [root@localhost ~]# useradd lisi
测试需要mail命令,我们需要安装mailx软件包,相当于一个邮件客户端程序 [root@localhost ~]# yum install mailx -y
发送邮件 [root@localhost ~]# mail to zhangsan 默认是当前用户是发起者 这里是root用户,to后面跟的是接受者 Subject是邮件的主题 Subject下面的是邮件的内容 . 表示的结束符号,也可以用ctrl+d 结束
切换用户,使用mail 查看信件 可以看出我们默认的域是localhost.localdomain 输入信件前面的编号可以查看信件,按q表示退出 所以发送邮件的完整格式是: [zhangsan@localhost ~]$ mail to lisi@localhost.localdomain 还可以在/var/spool/mail/用户 下查看信件信息 非交互式地发送邮件:
[root@localhost ~]# echo "这是内容" | mail -s "邮件主题" zhangsan@localhost.localdomain -s后面指定的是标题内容 [root@localhost ~]# echo -e "这是内容\n 你好张三" | mail -s "邮件主题" zhangsan@localhost.localdomain -e后面可以跟转义字符,\n是换行 [root@localhost ~]# mail -s "主题" -a /root/a.txt lisi@localhost.localdomain < /root/a.txt -a后面跟的是附件 需要用到重定向符<后面跟的是发送的文件
案例二:邮件群发 需要更改/etc/aliases 文件,默认执行的是/etc/aliases.db 文件 更改/etc/aliases 配置文件,实现群发 使用[root@localhost ~]# postalias /etc/aliases 将指定文件转成.db文件 测试群发 [root@localhost ~]# mail to RHCE 默认是本地域(@localhost.localdomain) 发送,所以后面可以不用跟域信息
案例三:给外网邮件服务器发送邮件 一般Linux系统自带mail命令,不能使用该命令可以安装mailx服务包 需要确定我们的Linux主机可不可以访问外网,可以ping一下百度看一下ping不ping的通 1. 首先在/etc/mail.rc 文件中添加(需要root权限): 怎么获取163邮箱的授权密码 [root@localhost ~]# echo "test" | mail -s "主题" (自己的邮箱) 注意这里只有使用非交互式发送邮件
案例四:搭建邮件服务器(单域邮件收发) 准备工作:在windo上下载一个Foxmail软件,用于后期的测试,软件下载地址:https://www.foxmail.com/ 1.首先更改配置文件
94 myhostname = mail.openlab.com
102 mydomain = openlab.com
118 myorigin = $mydomain
132 inet_interfaces = all
184 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
283 mynetworks = 192.168.229.0/24
2.安装,配置dovecot服务 dovecot是一个邮件接收服务 [root@localhost ~]# yum install dovecot -y 编辑主配置信息/etc/dovecot/dovecot.conf [root@localhost ~]# vim /etc/dovecot/dovecot.conf 编辑子配置文件信息/etc/dovecot/conf.d/10-mail.conf 3.重启服务 [root@localhost ~]# systemctl restart postfix.service [root@localhost ~]# systemctl restart dovecot 4.给测试用户添加密码 [root@localhost ~]# echo redhat | passwd --stdin zhangsan [root@localhost ~]# echo redhat | passwd --stdin lisi 5.更改权限chmod 600 /var/mail/* 注意:如果不执行上面这个命令,可能会出现在系统中可以收到邮件,但是客户端无法收到邮件,注意查看系统tail -f /var/log/maillog日志 6.在Windows上打开Foxmail进行测试 点击 其他邮箱 ---------->手动配置 ---------->输入信息 ---------->创建 在添加一个用户进行测试 点击 设置 ---------->账号管理 ----------->新建 发送邮箱,进行测试
案例五:域外互访 实验环境:两台虚拟机 在另一台虚拟机进行和上面一样的配置,注意把域信息改一下 验证一下本地域下是否能否正常发送信件 要实现双域之间的发送必须配置DNS不会配置的可以看我之前写的博客DNS服务的搭建 在baidu域 (百度域ip为192.168.229.130)中向openlab域发送邮件需要进行以下配置 [root@localhost ~]# vim /etc/named.conf [root@localhost ~]# vim /var/named/named.openlab.com [root@localhost ~]# vim /etc/resolv.conf [root@localhost ~]# nslookup mail.openlab.com 实现openlab域向baidu域发送信件,进行配置 [root@localhost ~]# vim /etc/named.con [root@localhost ~]# vim /var/named/named.baidu.com 在openla服务器 中更改DNS [root@localhost ~]# vim /etc/resolv.conf [root@localhost ~]# nslookup mail.baidu.com 邮箱验证
|