CentOS6.4下邮件服务器搭建

 

linux下邮件服务器的搭建大致分为三个步骤

  1. 准备工作(真实的生产环境下需要)
  2. 发送服务器安装及配置 (Postfix)
  3. 接收服务器安装及配置(dovecot)

一、 准备工作

1. 为邮件服务器添加DNS解析

虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录

2. 准备存放邮件的硬盘空间

如果用的是阿里云入门级Linux服务器,有一块20G的数据盘未挂载,需要格式化并挂载

二、发送服务器安装及配置 (Postfix)

1、卸载Sendmail

查看当前服务器环境中是否已经安装了Sendmail 如果已经安装了 执行下面的命令进行卸载

yum -y remove sendmail

我使用的环境是CentOS6.4 默认没有安装sendmail

[root@localhost ~]# rpm -qa | grep sendmail

2、安装Postfix

查看当前服务器环境中是否已经安装了Postfix 如果没有安装了 执行下面的命令进行安装

yum -y install postfix*

我使用的环境是CentOS6.4 默认已经安装了Postfix

[root@localhost ~]# rpm -qa | grep postfix
postfix-2.6.6-2.2.el6_1.i686

3、配置Postfix

[root@localhost ~]# vi /etc/postfix/main.cf

以下配置示例假设要配置的域名是cnblogs.info,邮件服务器主机名是mail.cnblogs.info

a) 修改myhostname

myhostname = mail.cnblogs.info

myhostname 参数即是我们的邮件伺服器的主机名称,是由英文字母或数字所组成,比如www.google.com或mail.google.com就是一个Hostname

b) 修改mydomain

mydomain = cnblogs.info

mydomain参数设定网域名称(Domain Name),主机名称通常都是在建立在网域名称之内,像是www.google.com则是网页服务,mail.google.com则会是邮件主机服务,通常网域名称都会是主机名称(Hostname)去掉第一个掉包含前面的文字部份,比如说www.google.com的Domain则是google.com

c) 修改myorigin

myorigin = $mydomain

myorigin是我们的邮件位址在”@”后面的文字内容,比如像是me@medesky.me,medesky.me就是我们的Origin Name

d) 修改smtp监听端口

inet_interfaces = all

inet_interfaces 参数指定postfix系统监听的网络接口。Postfix预设只会监听来自于本机端的所传出的封包,必须使用上列设定,才可以传收所有来自于网路端的所有封包

e) 修改 inet_protocols

修改Postfix的通讯协定,目前网路的协定主流有IPv4与IPv6,在大部份的情况下,我们都是利用IPv4在通讯的,如果你的Mail Server没有需要使用到IPv6,可以做以下的设定修改

inet_protocols  =  ipv4 

f) 修改mydestination

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost

mydestination参数设定能够接收信件的主机名称,Postfix预设只能收到设定的Hostname与Domain Name以及本机端的信件,此步骤是再增加能收信件的网路名称

g) 设定信任用户端

mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access

mynetworks 参数设定信任的用户端,当要寄信时,会参考此值,若非信任的用户,则不会帮你的信件转到其它的MTA主机上

h) 设定relay_domain转发邮件域名

规范可以relay 的MTA 主机位址,通常这个都直接设为mydestination

relay_domains = $mydestination

i) 设定邮件别名的路径

检查” alias_maps”设定是否为以下字串设定

alias_maps = hash:/etc/aliases   

j) 设定指定邮件别名表资料库路径

检查” alias_ database”设定是否为以下字串设定

alias_database = hash:/etc/aliases  

k) 执行以下命令

用于设定邮件主机使用权限与过滤机制及邮件别名

# postmap hash:/etc/postfix/access
# postalias hash:/etc/aliases

4、重启postfix使设置生效(使smtp服务的25号端口打开)

[root@localhost ~]# service postfix restart
关闭 postfix: [确定]
启动 postfix: [确定]
[root@localhost ~]# netstat -anp | grep :25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16331/master
tcp 0 0 :::25 :::* LISTEN 16331/master

5、测试

a) 寄信测试

此时我们已经可以利用此台主机使用smtp收送电子邮件了, 利用mail指令来测试

[root@localhost ~]# mail root@cnblogs.info
Subject: test
test
.
EOT

b) 收信测试

当我们从内部或外部寄信过来时,预设的邮件存放位址如下:

/var/spool/mail(或/var/mail)

从此目录里查看帐号名称的档案,我们所收发的信件都会存在这里

也可以通过 mail -u 命令查看

[root@localhost ~]# mail -u root
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/mail/root": 1 message 1 new
>N 1 root Sat Jun 15 12:48 18/561 "test"
& 1
Message 1:
From root@cnblogs.info Sat Jun 15 12:48:37 2013
Return-Path: <root@cnblogs.info>
X-Original-To: root@cnblogs.info
Delivered-To: root@cnblogs.info
Date: Sat, 15 Jun 2013 12:48:36 +0800
To: root@cnblogs.info
Subject: test
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@cnblogs.info (root)
Status: R test &

三、接收服务器安装及配置(dovecot)

1、安装dovecot

[root@localhost ~]# yum install -y dovecot*

2、配置dovecot

[root@localhost dovecot]# vi /etc/dovecot/dovecot.conf

a) 修改protocols支持pop3和imap

protocols = imap pop3

3) 启动dovecot服务并开启110、143端口

[root@localhost dovecot]# service dovecot restart
停止 Dovecot Imap: [失败]
正在启动 Dovecot Imap: [确定]
[root@localhost dovecot]# netstat -anp | grep :110
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 17607/dovecot
[root@localhost dovecot]# netstat -anp | grep :143
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 17607/dovecot

CentOS6.4下邮件服务器搭建的更多相关文章

  1. CentOS6.5下DNS服务器搭建与配置

    一.安装机器情况 192.168.1.70(dns 主节点) 192.168.1.71(dns 从节点) 二.主节点DNS的安装及配置 1. DNS服务器所需的软件包安装 yum -y install ...

  2. 烂泥:Postfix邮件服务器搭建之虚拟用户配置

    virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...

  3. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  4. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装.启动及PXE理论详解 本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议 ...

  5. linux下的服务器搭建集成环境

    linux下的服务器搭建集成环境 ——写给初学者的我们 1.准备工具 1.1 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录 ...

  6. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  7. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  8. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  9. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

随机推荐

  1. APK反编译、重编译、签名、查看源码

    1.反编译与重编译 工具:apktool 下载地址:https://ibotpeaches.github.io/Apktool/ 环境:Java (JRE 1.7) 安装步骤:参考官网(也可以不安装, ...

  2. react 首屏加载优化

    react 首屏加载优化,原本是在入口HTML文件中加载loading动画,但是部署在测试环境上的时候一直无法显示loading的部分,也是奇怪了,我们测试环境的部署一直跟本地的都不太一样,内外网的转 ...

  3. JAVA基础——集合——ArrayList

    ArrayList集合 ArrayList的一些方法(JDK1.8): 将指定的元素附加到列表的末尾,true:添加成功,false:添加失败: public boolean add(E e)    ...

  4. (转)Springboot日志配置(超详细,推荐)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

  5. Element-ui的表单中怎么添加正则校验

    1. 以中国大陆手机号验证为例 // 这是组价的代码 <el-form-item prop="mobile"> <el-input type="text ...

  6. [Java in NetBeans] Lesson 11. While Loops

    这个课程的参考视频和图片来自youtube. 主要学到的知识点有:(the same use in C/C++) 1. while loop while(i < max){} will keep ...

  7. 遇到CloudFlare邮箱混淆,如何解密?

    <script type="text/javascript">$(function() { $(".__cf_email__").each(func ...

  8. Dockerfile详解(三)

    1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...

  9. 用int还是用Integer?

    昨天例行code review时大家有讨论到int和Integer的比较和使用. 这里做个整理,发表一下个人的看法.   [int和Integer的区别] int是java提供的8种原始类型之一,ja ...

  10. arrow

    1.c++(OOGP) 与数据结构与算法 1.一定要有一门自己比较熟悉的语言. 我由于使用C++比较多,所以简历上只写了C++.C++的特性要了解,C++11要了解一些,还有STL.面试中常遇到的一些 ...