zoukankan      html  css  js  c++  java
  • 邮件服务器搭建

    邮件服务配置

    Linux服务器发送电子邮件,通常是出于自动用途或者是向管理员报告错误。它们通常直接或间接使用名为/usr/sbin/sendmail的标准程序来发送这些邮件在实际中,大部分服务器都受到监控,并且在发生事件时发出邮件

    这通常都需要一个以配置的/usr/sbin/sendmail来发送电子邮件,以通过使用公司SMTP服务器传输邮件来向负责系统管理员进行通知

    空客户端

    一个运行在本地邮件服务器的客户端计算机,它将所有电子邮件转发到出站邮件中继以进行发送
    
    空客户端不接受任何邮件的本地发送,它只能将这些邮件发送到出站邮件中继
    
    用户可以在空客户端上运行邮件客户端来读取和发送电子邮件
    
    配置Postfix空客户端,将使用sendmail和SMTP协议,通过现有的传出邮件服务器将邮件传输到外部

    电子邮件消息的传输

    在大部分情况下,要发送电子邮件,邮件客户端与传出邮件服务器进行通信,后者可帮助将该邮件中继到其最终目标
    
    邮件客户端使用简单邮件传输协议将邮件传输到邮件服务器
    
    传出邮件中继可能不需要来自内部客户端的身份验证。在此情况下,中继将通过基于IP地址的限制或防火墙规则来限制哪些主机可以进行中继
    
    传出邮件中继随后使用DNS来查找MX记录,该记录用于标识哪个邮件服务器接受发送到收件人域的邮件的传递。
    
    中继随后使用端口25/TCP上的SMTP将电子邮件传输到该服务器
    
    收件人的邮件服务器可能提供POP3或IMAP服务器以允许专用邮件客户端下载其邮件

    MOA 邮件用户代理


    MRA 邮件检索代理


    MDA 邮件投递代理


    MTA 邮件传输代理

    本域发送一封邮件,首先MRA检索是否发送给本地,如果不是,那么MTA传输给中继邮件服务器(域外)

    Postfix

    功能强大易于配置的邮件服务器

    安装

    1 yum install -y postfix

    添加邮件用户

    useradd mailself
    
    echo 123456 | passwd --stdin mailself

    修改主配置文件

    方式一:

    vim /etc/postfix/main.cf 
    
        # 修改服务器域名
        mydomain = example.com
    
        # 对所有IP地址提供服务
        inet_interfaces = all
    
        # 提供服务类型,这里只讨论邮件发送
        mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain

    方式二:

    postconf -e "mydomain = example.com"
    
    postconf -e "inet_interfaces = all"
    
    postconf -e "mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain"

    重启postfix服务

    systemctl enable postfix
    
    systemctl restart postfix

    测试

    安装telnet插件

    1 yum install -y telnet

    修改DNS服务器,因为我们发送邮件需要域名服务,如何配置DNS服务器请查看本人博客,DNS服务器中记录example.com一定要指向本机,否则邮件服务器不能发送邮件到指定域

    使用mail命令

    # 发送邮件
        mail -s <标题> 用户名@域名
    
        mail -s aaa mailself@example.com
        54545
        574878asdgasgsag
        .(回车结束)
        EOT
    
    # 切换用户
    
        su - mailself
    
    # 查看是否收到邮件
    
        mail
    
            "/var/spool/mail/mailself": 1 message 1 new
            >N  1 root                  Tue Jan 23 21:20  24/605   "aaa"
            & 1
            Message  1:
            From root@server.example.com  Tue Jan 23 21:20:55 2018
            Return-Path: <root@server.example.com>
            X-Original-To: mailself@example.com
            Delivered-To: mailself@example.com
            Date: Tue, 23 Jan 2018 21:20:55 +0800
            To: mailself@example.com
            Subject: aaa
            User-Agent: Heirloom mailx 12.5 7/5/10
            Content-Type: text/plain; charset=us-ascii
            From: root@server.example.com (root)
            Status: R
    
            54545
            574878asdgasgsag
    
    # 接收成功!!!

    使用telnet命令

    # 发送邮件
        telnet mail.example.com 25
    
        helo example.com
    
        mail from:root@example.com
    
        rcpt to:mailself@example.com
    
        data
    
        subobject:<标题>
        <内容>
        asf
        asf
        saf
        .<回车结束>
    
        quit
    
    # 切换用户查看
    
        su - mailself
    
        mail
    
            >N  2 root@example.com      Tue Jan 23 21:27  16/501   
            & 2
            Message  2:
            From root@example.com  Tue Jan 23 21:27:55 2018
            Return-Path: <root@example.com>
            X-Original-To: mailself@example.com
            Delivered-To: mailself@example.com
            subobject:titleas
            Date: Tue, 23 Jan 2018 21:25:49 +0800 (HKT)
            From: root@example.com
            Status: R
    
            asf
            asf
            saf
    
    # 接收成功!!!

    Dovecot

    postfix不支持远程读取邮件功能,所以邮件只能在服务器端打开,dovecot可以远程接收服务器中的邮件

    Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器
    
    POP / IMAP 是 MUA 从邮件服务器中读取邮件时使用的协议。
    
    其中,与 POP3 是从邮件服务器中下载邮件存起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。

    软件包安装

    1 yum install -y dovecot

    修改主配置文件

    vim /etc/dovecot/dovecot.conf
    
        # 支持协议类型
        protocols = imap pop3 lmtp
    
        # 允许网络
        login_trusted_networks = 0.0.0.0/0
    
        dict {
    
        }
      :wq
    
    vim /etc/dovecot/conf.d/10-auth.conf
    
        # 这里不讨论安全配置,只实现功能
        #disable_plaintext_auth = yes
      :wq
    
    vim /etc/dovecot/conf.d/10-ssl.conf 
    
        # 这里不讨论安全配置,只实现功能
        ssl = no
      :wq
    vim /etc/dovecot/conf.d/10-mail.conf
    
        # 本地邮件接收路径
        mail_location = mbox:~/mail:INBOX=/var/mail/%u
    
        # 默认没有注释
        mbox_write_locks = fcntl
      :wq
    # 切换用户
        su - mailself
    
    # 创建用户邮件目录
        mkdir -p mail/.imap/INBOX

    重启服务(服务器端)

    systemctl enable dovecot
    
    systemctl restart dovecot

    测试

    # 使用mail命令
      mail -s test -r root@example.com mailself@example.com
      aaa
      bbb
      c
      c
      .
      EOT
    # 登陆到远程主机,非服务器
        ssh root@192.168.198.129
    
    # 使用telnet命令查询服务器中mailself用户的邮件
        telnet 192.168.198.128 110
        Trying 192.168.198.128...
        Connected to 192.168.198.128.
        Escape character is '^]'.
        +OK [XCLIENT] Dovecot ready.
        user mailself
        +OK
        pass 123456
        +OK Logged in.
        +OK 4 messages:
        1 571
        2 466
        3 568
        4 536
        retr 4
        +OK 536 octets
        Return-Path: <root@example.com>
        X-Original-To: mailself@example.com
        Delivered-To: mailself@example.com
        Received: by server.example.com (Postfix, from userid 0)
        id 6DAAE24A7D0; Wed, 24 Jan 2018 16:37:09 +0800 (HKT)
        Date: Wed, 24 Jan 2018 16:37:09 +0800
        From: root@example.com
        To: mailself@example.com
        Subject: test
        Message-ID:         <5a6845b5.rO/WPg7zdER17ROV%root@example.com>
        User-Agent: Heirloom mailx 12.5 7/5/10
        MIME-Version: 1.0
        Content-Type: text/plain; charset=us-ascii
        Content-Transfer-Encoding: 7bit
    
        aaa
        bbb
        c
        c
        .
    # 成功查询服务器中用户的邮件!!!
  • 相关阅读:
    WCF开发实战系列二:使用IIS发布WCF服务
    电脑远程登录控制Android手机Webkey For Android使用教程
    WCF的https安全(ssl)访问实例
    IIS中“使用 XSL 样式表无法查看 XML 输入”问题的解决
    服务器禁止被ping的设置方法(图文)
    Windows Server 2008 R2 MSDN
    IIS7配置https
    C# 检查网络是否连通 判断远程文件是否存在 C#获取程序路径的方法中需要注意的地方
    c#,winform,treeview,选中节点,选中相应的全部子节点,取消节点,取消父节点,小技巧
    sql大全(一)
  • 原文地址:https://www.cnblogs.com/cq146637/p/8338113.html
Copyright © 2011-2022 走看看