- SMPT(Simple Mail Transfer Protocol)即,简单邮件传输协议,它是一组由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMPT协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMPT协议所指定的服务器就可以把Email寄到收件人的服务器上。
- 它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收件人的邮件服务器。跟 大多数应用层协议一样,SMPT也存在两个端,在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时在向其他邮件服务器发送邮件消息时,它时作为SMPT客户在运行。
服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过/usr/bin/sendmail程序进行提交。如果该MTA(电子邮件服务器)是最终目标位置,邮件将传递至MDA(邮件发送代理),MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是/var/spool/mail/user),Postfix提供自己的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.。否则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。
发送邮件的几个动作:
Postfix时GPL协议下开发的MTA(邮件传输代理)软件。Postfix由postfix RPM包提供,并通过postfix服务脚本控制。它是一个由多个协同操作程序构成的模块化程序,它的组件由master进程控制。
Postfix的主配置文件是/etc/postfix/main.cf,可以使用文本编辑器或postconf命令进行编辑。postconf命令还可用于确定Postfix的所有当前和默认配置设置或逐项确定这些设置。
默认情况下,Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all。
对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,其中包括关于被事件和成功事件的信息。mailq命令(或postqueue -p)显示已排队的所有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令(或postqueue -f);否则,postfix将大约每小时尝试重新发送一次,直至邮件被接受或过期。
两台虚拟机
一个域名为qq.com IP:172.25.14.22 提供DNS服务
一个域名为sina.com IP:172.25.14.11 修改nameserver
<1>编辑配置文件(两台都配置)
75行:配置主机名称。
83行:配置域名。
99行:重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器。
113行:控制Postfix侦听传入电子邮件的网络接口。设置为all,则侦听所有网络接口。
116行:注释改行。
164行:
配置接受来自这些域的邮件将传递至MDA,以进行本地发送。
配置完成后重启服务systemctl restart postfix.server
<2>配置防火墙
<3>用mailqq给mailsina发邮件测试
邮件队列为空,邮件箱为空,说明发送成功,没有被退回。
然后到mailsina主机查看邮件
一般情况下,我们发送邮件需要从客户端登陆到邮件服务器然后进行操作。所以,我们就来使用远程登陆服务发送邮件。
Telnet协议能提供本地计算机完成远程主机工作的能力,它时TCP/IP族的一员,时Internet远程登陆服务的标准协议和主要方式。在终端使用者的电脑上使用Telnet程序,用它连接到服务器。终端使用者可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样,可以本地就能控制服务器。Telnet是常用的远程控制Web服务器的方法。
在其他终端远程登陆到mailqq服务器postfix默认25端口
给mailsina发送邮件。
mail from是发送端,rcpt to是接收端,data是邮件内容,quit退出
在mailsina主机就可收到邮件
<2.3.1>Telnet限制client
在mailqq服务器上设置禁止登陆
Postconf -e相当于编辑/etc/postfix/main.cf,在这个文件的末尾可以看见添加的命令
编辑刚才的access文件,文件末尾添加限制客户端登陆的IP
然后加密该文件,postmap /etc/postfix/access
加密完成后会生成access.db文件。
再次远程登陆发送邮件则会被拒绝。
如果要删除这个限制,只要删除调access文件里的语句,然后postmap access就可以了,或者直接更改mail.cf文件。下同
<2.3.1>Telnet限制sender
过程与限制client基本相同,先编辑主配置文件
修改sender文件,添加要限制的送信人
postmap sender 生成加密文件后就可可以测试
Sender被拒绝。mailqq不能发送邮件,但是可以收件。
在mailqq主机检查受到的邮件
<2.3.3>Telnet限制recipient
vim /etc/postfix/dest
postmap dest
systemctl restart postfix.server
测试方法和前两个相同。
实际上,大多数组织不再只用一个邮件服务器来处理所有入站和出战电子邮件。相反,出于安全方面的考虑邮件服务器专门针对特定角色进行了设置,以便可以面向其具体针对的应用程序更好标准角色包括:
将mailsina作为仅入站邮件服务器叫mailserver,把mailqq作为null客户端。
配置mailserver:/etc/postfix/main.cf
转发自(null客户端是该网段)
重启postfix服务。systemctl restart postfix.server
配置null客户端:/etc/postfix/main.cf
间接发送至mailserver服务器
null客户端不接收邮件
重启postfix服务。systemctl restart postfix.server
在空壳服务器给qq.com发送邮件,在mailserver就会收到
Dovecot是一个开源的IMAP和POP3邮件服务器,支持Linux/Unix系统。POP/IMAP是MUA(邮件用户代理)从邮件服务器中下载邮件存起来,IMAP4则是将邮件留在服务器端直接对邮件进行管理操作。
<1>配置邮件接收服务器
<2>开启默认端口110/143/993/995
pop: 110无加密—-995加密
imap:143无加密—-993加密
<3>编辑配置文件/etc/dovecot/dovecot.conf
开启协议
明文传输
/etc/dovecot/conf.d/10-mail.conf
<4>查看邮件
先为student用户发送一封邮件
用mutt在客户端查看邮件,mutt是linux下的一个email程序,类似一个文件管理器的邮件管理工具。
mutt -f pop://[email protected]
登陆进去输入student密码,会报错退出。
去mailserver主机 cat /var/log/maillog 查看报错
根据报错信息,应该用student身份在/home/student/mail/创建.imap目录,并且在该目录下创建一个INBOX文件。
然后在用mutt登陆查看邮件,输入密码验证通过后就可以查看到刚才发给student的邮件
在mailserver服务器上安装mariadb,mariadb-server httpd php php-mysql 软件,并开启软件
首次登陆更改数据库root密码
下载一个phpMyAdmin-3.4.0-all-languages.tar.bz2图形化管理数据库软件到/var/www/html/(httpd服务默认发布目录),解压,配置。
配置防火墙
然后就可以在浏览器登陆httpd服务,查看数据库
登陆到数据库,建立email数据库,建立emailuser表,创建四个字段分别为username,password,domain,maildir。
mysql -uroot -pmysql登陆到数据库,创建postfixuser用户并授权。
编辑postfix配置文件 ,先创建一个用户一会用来测试结果。
Vim /etc/postfix/mysql-alias.cf
Vim /etc/postfix/mysql-domains.cf
Vim /etc/postfix/mysql-mailboxs.cf
在email数据库emailuser表中插入数据,分别对应 username,password,domain,emaildir
用postmap检测我们这些文件配置的是否正确
因为服务器中数据库已经存在sina.com域,所以就不用DNS解析,因此就可以删除nameserver 172.25.14.22
用mail [email protected]给test用户发邮件
到virtual家目录查看邮件
很显然,收件人不能在邮件服务器里查看管理自己的邮件,必须通过一个客户端,远程的接收邮件,上次我们使用的是mutt客户端,接下来使用thunder bird客户端,他们都支持IMAP,POP邮件协议。
Thunder bird是由Mozilla浏览器的收件功能部件所改造的邮件工具,支持IMAP,POP邮件协议以及HTML邮件格式,支持垃圾邮件过滤、反钓鱼欺诈,高级安全等,可进行个性化配置。
Dovecot(豆腐块)是一个开源的IMAP和POP邮件服务器
在Postfix+mysql基础上,安装 yum install dovecot -y
编辑配置文件/etc/dovecot/dovecot.conf
开启协议
允许所有网络用户登陆
明文传输
支持数据库
新包含的文件中指定了另一个SQL配置文件,可以复制模板
复制dovecot-sql.conf.ext模板文件到/etc/dovecot/
编辑dovecot-sql.conf
.ext
编辑/etc/dovecot/conf.d/10-mail.conf 设置邮件存储目录
安装dovecot-mysql插件,就像看视频安装flash插件一样。
在别的主机用telnet软件远程登陆邮件服务器
这说明dovecot邮件服务器配置完成,接下来就用雷鸟查看邮件
安装完成后输入thunderbird命令就可以打开雷鸟软件
Name:[email protected]
Address:[email protected]
点Re-test然后点done
点done
输入刚才创建用户的密码,就可以看见邮件
还可以创建一个用户(数据库中存在的),通过雷鸟进行邮件通信。当收到邮件时,会有提示。