配置邮件服务器及空邮件服务器

配置邮件服务器vim

基础邮件服务后端

电子邮件服务器基本功能安全

Ø 为用户提供电子邮箱存储空间(用户名@邮件域服务器

Ø 处理用户发出的邮件——传递给收件服务器网络

Ø 处理用户收到的邮件——投递/存储到邮箱less

注:DNS起导航员的做用,引导用户发送给哪一个邮箱服务器(识别ip)等tcp

搭建基本邮件服务器oop

Ø 用户发邮件的协议 :SMTP  端口号 25(TCP 25,SMTP)post

Ø 用户收邮件的协议 :pop3  端口号 110        IMAP  端口号 143测试

 

标配邮件服务器:本机的程序 ==》本机的postfix邮件服务器 

普通邮件服务器:本机或其余主机的程序 ==》postfix邮件服务器 

快速部署postfix邮件服务器

• 装包、配置、起服务

Ø 默认的标准配置便可为本机提供发/收邮件服务

Ø 如有必要,可扩大服务范围(邮件域)

(监听端口号为 TCP 25 SMTP):

使用mail命令发信/收信

发信操做:mail ---> 本机postfix

mail  -s :邮件的主题

      -r:发件人

      -u:查看指定用户的邮件

     mail -s “邮件标题” 收件人[@收件域]

----回车输入邮件内容最后以.结束 或【Ctrl + d 提交】

非交互式发邮件

1.利用管道: echo “内容” | mail -s “主题” -r 发件人 收件人

2.利用重定向输入 < 能够将文本文件的内容,看成命令的输入

mail  -s  '邮件标题'  收件人地址  < 邮件正文.txt

收信操做:mail ---> 本机的用户邮箱

    mail [-u 用户名]

mail  -f  邮箱位置

其余的邮件客户端软件:Outlook、Foxmail、Thunderbird、手机邮箱

补充 【/etc/mail.rc】

用户邮箱位置:

/var/spool/mail/用户名

home_mailbox = Maildir  【~用户/Maildir文件】

home_mailbox = Maildir/  【~用户/Maildir目录】

###############################################################################

示例:搭建postfix基础邮件服务

在虚拟机server0上配置 postfix 基础服务,具体要求以下:

    监听本机的全部接口     将邮件域和邮件服务主机名都改成 server0.example.com

而后在server0上使用mail命令测试发信/收信操做:

    由 yg 给虚拟机desktop0用户 xln 发一封测试邮件

    查收用户 xln 的邮箱,读取邮件内容,确保是从 yg@server0.example.com 发过来的

步骤一:在Server0上配置postfix基础邮件服务

  1.设置永久的主机名) # echo server0.example.com > /etc/hostname

  2.安装postfix软件包  # yum  -y  install  postfix

  3.修改配置文件/etc/postfix/main.cf

99行   myorigin = server0.example.com         //默认补全的(发件人)域名后缀

116行 inet_interfaces = all                   //设置监听的网络接口(全部)

164行 mydestination = server0.example.com  //符合(的收件人)域名的断定为本域邮件

4.重起postfix服务:systemctl restart postfix

5.查看邮件服务监听状态 # netstat  -antpu | grep  :25

    tcp    0    0 0.0.0.0:25        0.0.0.0:*        LISTEN      1739/master         

    tcp6   0     0 :::25              :::*           LISTEN      1739/master 

步骤二:使用mail命令发信/收信

建立测试用户# useradd yg

      # echo 123 | passwd --stdin yg    //建立yg用户,设置密码123

1)给用户root发一封测试邮件

#mail -s '葵花宝典' -r  yg   xln

I find it!!!!

.               //系统以点作为单独一行做为结束邮件编辑标识

EOT

此处也可用非交互发邮件:# echo 'I find it!!!!'  |  mail  -s  '葵花宝典' -r xln

步骤三:在desktop0上配置postfix基础邮件服务(desktop0.example.com)

 1.设置永久的主机名 # echo desktop0.example.com > /etc/hostname

 2.安装postfix软件包  # yum  -y  install  postfix

 3.修改配置文件/etc/postfix/main.cf

.. ..

 myhostname = desktop0.example.com //本机的主机名

99行   myorigin = desktop0.example.com         //默认补全的(发件人)域名后缀

116行 inet_interfaces = all                   //设置监听的网络接口(全部)

164行 mydestination = desktop0.example.com //符合(的收件人)域名的断定为本域邮件

4.重起postfix服务:systemctl restart postfix

步骤二:使用mail命令发信/收信

建立测试用户 # useradd xln

        # echo 123 | passwd --stdin xln    //建立xln用户,设置密码123

        # mail -u xln

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

"/var/mail/xln": 1 message 1 new

>N  1 yg@server0.example.c  Sat Aug 26 11:02  18/604   "葵花宝典"

&  1            //读取第1封邮件内容

Message  1:

From yg@server0.example.com  Sat Aug 26 11:02:23 2017

Return-Path: <yg@server0.example.com>

X-Original-To: xln

Delivered-To: xln@desktop0.example.com

Date: Sat, 26 Aug 2017 11:02:23 +0800

From: yg@server0.example.com

To: xln@desktop0.example.com

Subject: 葵花宝典                //检查邮件标题

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

Status: R

I find it!!!!          //检查邮件内容

& q                   //按q退出mail程序

###############################################################################

nullclient邮件服务

nullclient,空客户端

本机程序 ==》postfix邮件服务器 ==》后端邮件服务器

Ø 不提供任何邮箱账号,所以不须要投递邮件  (相似于秘书,代发邮件

Ø 可是能够为用户代发邮件

postfix空客户端邮件服务器的功能

Ø 不为用户提供电子邮箱

Ø 为邮箱用户向其余邮件服务器发送邮件 (条件:后端普通邮件服务器)

Ø 不接受(投递/存储)发送给给本服务器的邮件

空客户端邮件服务器的工做环境:

客户端 ---> 空客户端邮件服务器(发)---> 普通邮件服务器(发/收)

由于客户端服务器发送邮件速度较慢,由空客户端代发,发送速度较快,且更安全

排错查看:/var/log/maillog

#########################################################################

普通邮件服务器(desktop0):

1)提供邮箱存储

2)向外发送邮件

3)对内投递邮件

 

空客户端邮件服务器(server0):

1)不提供邮箱存储

2)向外发送邮件(假装成指定的后端邮件服务器)

3)不对内投递邮件

示例:postfix空客户端邮件服务

初始化后端邮件服务器desktop0.example.com,操做以下:lab  smtp-nullclient  setup 

而后将虚拟机server0配置为空客户端邮件服务器,具体要求以下:

    此系统不接收外部发送来的邮件,本地发送的任何邮件都会自动路由到 smtp0.example.com       所发出的邮件显示来自于 desktop0.example.com

在 server0 上发送一封标题为 Test1 的邮件给本地用户 student ;实际结果将由 desktop0 上的本地用户 student 接收到此邮件

配置要点:将server0调整为空客户端邮件服务器:指定后端服务器,发件来源,禁止邮件投递功能

步骤一:将server0配置为空客户端邮件服务器

设置永久的主机名(server0.example.com)/etc/hostname

1)安装postfix软件包 # yum  -y  reinstall  postfix

注:新实验时要删除配置文件# rm  -rf  /etc/postfix/main.cf,再重装postfix

2)修改main.cf配置文件,调整或修改现有配置

    # vim  /etc/postfix/main.cf

99行myorigin = desktop0.example.com         //后端邮件服务器管辖的邮箱域

116行inet_interfaces = loopback-only         //仅本机,或=localhost

164行mydestination =                            //将投递域设为空(不投递)

317行relayhost = [smtp0.example.com]    //后端邮件服务器的域名,将邮件交给smtp0

     mynetworks = 127.0.0.0/8  [::1]/128                  //【添加】信任网络smtp0

3)启动postfix服务 # systemctl  restart  postfix

4)查看邮件服务监听状态 # netstat  -antpu | grep  :25

    tcp        0      0 127.0.0.1:25      0.0.0.0:*     LISTEN      2054/master         

    tcp6       0      0 ::1:25            :::*          LISTEN      2054/master

步骤二:将desktop0配置为后端邮件服务器

设置永久的主机名(server0.example.com)/etc/hostname

1)执行 lab smtp-nullclient setup //此命令为用于实验用的自定义命令

[root@desktop0 ~]# lab  smtp-nullclient  setup  

Setting up desktop machine... 

Setting up dovecot... 

Generating new dovecot certificate... 

Setting up postfix... Generating new postfix certificates... 

Setting up firewall... 

Setting up user student... 

Installing httpd to share cert...

 验证:空客户端发件给student,在desktop上的student接收到邮件

2)确认发信服务(postfix) # netstat  -antpu | grep  :25

    tcp        0      0 0.0.0.0:25      0.0.0.0:*      LISTEN      31366/master        

    tcp6       0      0 :::25             :::*         LISTEN      31366/master        

3)确认取信服务(dovecot)# netstat  -antpu | grep  dovecot

    tcp        0      0 0.0.0.0:143     0.0.0.0:*     LISTEN      31229/dovecot       

步骤三:使用mail命令测试空客户端邮件服务器

1)在server0(空客户端邮件服务器)上给本机用户student发信

    # echo  'Mail Data.'  |  mail  -s  'Test1'  student

    # mail  -u  student             //本机用户并不会收到邮件

2)在desktop0(后端邮件服务器)上的同名用户student能够收到信

   # mail  -u  student            //收件正常 

排错:

1)在空客户端服务器上(server0)

# > /var/log/maillog  //清空日志

# mail .....

# cat  /var/log/maillog   【less分页查看文件】

.. ..

status=sent  

2)在后端邮件服务器上(desktop0)

# cat  /var/log/maillog 

.. ..

 loopback to myself        //邮件未成功投递