postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。

1、首先设置hostname
   事先设置好hostname的话,Postfix可以自动配置好很多参数,节省时间。我们要假设的网站域名为100p.com,要搭建独立的邮件服务器,就把主机名设置为mail.100p.com。

 

#echo 'mail.100p.com' > /etc/hostname
#hostname -F /etc/hostname

2、安装Postfix

#rpm -ivh *.rpm 

我们的系统一般默认已经安装好Postfix。

#rpm -qa | grep postfix
postfix-2.6.-.el6_5.x86_64

3、基本配置
   Postfix的配置文件位于/etc/postfix/main.cf。一般有以下几个重要参数需要设置:

 *myhostname*  //主机名
   myhostname = mail.100p.com
   
  *myorigin*  //外发邮件时发件人的邮件域名
    myorigin = $myhostname //在通过Postfix发送邮件的时候,如果From字段不完整,Postfix会根据myorigin的值将地址补全为 *@mail.100p.com
   
  *mynetworks*  //需要收发的客户端的地址
    mynetworks = 20.0.2.1/, 20.0.8.1/, 127.0.0.0/ //mynetworks指定了本地网络的IP段,默认只包含主机自己,你可以添加需要收发的客户端的地址。
 
  *mydomain*   //使用邮件域
    mydomain = 100p.com //mydomain 设置本地网络的邮件域
      
  *mydestination*  //可接受邮件地址域名
    mydestination = 100p.com, mail.100p.com //mydestination指定了postfix在收到这些域名地址为目标的邮件时,作为接受方收下邮件。如果收到的邮件既不符合转发规则,又不符合接受规则,则拒绝收信。
 
  *sasl*  //sasl认证  
smtpd_sasl_auth_enable = no  //smtp不需要SASL认证时,设置为no。

4、 重启服务

配置完postfix的主要参数之后,需要重启postfix服务,重启方法如下:

 #service postfix restart
 #/etc/init.d/postfix  restart

服务重启失败,postfix - master dead but pid file exists
     remove /var/spool/postfix/pid/master.pid

如果还存在这个问题,可以查看端口
  

  # netstat  -lnp | grep :

杀死进程,重新启动postfix服务

5、安装dovecot,启动服务

  #service devocot restart 

配置文件,添加一下内容

 # vi /etc/dovecot/dovecot.conf

    

protocols = imap pop3 lmtp
protocols = pop3
disable_plaintext_auth = no
ssl = no
mail_location = mbox:/var/mail:INBOX=/var/mail/%u

6、测试收邮件,我们搭建的邮件服务器的地址为20.0.2.16,我们使用telnet进行测试:

 [root@gio020 postfix]# telnet 20.0.2.16
  Trying 20.0.2.16...
  Connected to gio016 (20.0.2.16).
  Escape character is '^]'.
  mail.100p.com ESMTP Postfix
  *MAIL FROM: wangtao@100p.com*  //    *为要输入的内容*  发送的邮件地址
   2.1. Ok
  *RCPT TO: bmc*                     // 接受的用户名
2.1. Ok
*DATA*                           //    发送的内容
End data with <CR><LF>.<CR><LF>
*This is a test mail.*             
*.*                               //  输入要发送的内容,以点号结束
2.0. Ok: queued as 172B162C17A
*quit*                             // quit退出测试
2.0. Bye

发送成功之后就可以再gio016的/var/mail/mbc下查看到刚才发送的邮件
邮件内容如下:

From wangtao@100p.com  Thu Sep  ::
Return-Path: <wangtao@100p.com>
X-Original-To: bmc
Delivered-To: bmc@mail.100p.com
Received: from gio020 (gio020 [20.0.2.20])
        by mail.100p.com (Postfix) with SMTP id 172B162C17A
        for <bmc>; Thu, Sep :: + (CST)    
   
DATA
This is a test mail.

Linux中postfix邮件服务器的搭建的更多相关文章

  1. Linux系统下邮件服务器的搭建(Postfix+Dovecot)

    对于网站来说,发送各种例如注册通知的邮件是很基本的一个需求,之前我一直用的是腾讯的企业邮箱,感觉挺方便的,直接可以绑定QQ邮箱接收邮件,网站配置一下SMTP也就可以发出邮件. 但是在前几天由于有重要信 ...

  2. Linux中Postfix邮件原理介绍(一)

    邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 ...

  3. Linux中Postfix邮件WebMail配置(七)

    Extmail Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail.Extman两个部分的程序套件.ExtMail套件用于提供从 ...

  4. Linux中Postfix邮件认证配置(五)

    Postfix+Dovecot+Sasl工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户 ...

  5. Linux中Postfix邮件发送配置(三)

    部署DNS服务器 postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件) $ service iptables stop $ ...

  6. Linux中Postfix邮件安装配置(二)

    本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反垃圾邮件等都有详细的介绍.在搭建过程中必须的参数解释以及原理都有告诉,这样才能更好地理解邮件系统. 卸载自带postfix ...

  7. Linux中Postfix邮件安装Maildrop(八)

    Postfix使用maildrop投递邮件 Maildrop是本地邮件投递代理(MDA), 支持过滤(/etc/maildroprc).投递和磁盘限额(Quota)功能. Maildrop是一个使用C ...

  8. Linux中Postfix邮件接收配置(四)

    Dovecot介绍 MRA邮件取回代理也有很多如courier-imap,cyrus-imap和dovecot这三个个工具,下面重点介绍Dovecot: 1.高安全性.据 Dovecot 的作者声称, ...

  9. linux 架设 postfix 邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html

随机推荐

  1. C# winform窗体设计-通过条件查询数据

    在winform 数据库设计中,有时候需要通过条件查询对应的数据,并且将数据显示在文本框(or 富文本框)中,下面,小编将讲述通过一个条件: 首先,我们需要对数据库建立连接,并且执行数据库命令,在此之 ...

  2. C# 获取当前,相对,绝对路径

    一.C#获取当前路径的方法: 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName -获取模块的完整路径. 2. ...

  3. mysql简单操作(实时更新)

    从表中删除某条记录: delete from table_name where xx=xxxx; 创建数据库(注意不同系统对大小写的敏感性): create database xxx; 查看数据库列表 ...

  4. Java中如何遍历Map对象的4种方法

    在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...

  5. 个人作业—Week1

    针对教材内容的问题 阅读教材<软件工程——实践者的研究方法>Roger S.Pressman 在笼统地阅读了教材,大致理清教材知识结构后,提出以下问题作为今后学习地重点: 1)     什 ...

  6. 有return的情况下try catch finally的执行顺序

    结论:1.不管有木有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没 ...

  7. angularjs中ng-change使用方法

    ng-change需与ng-model结合使用,官网说明如下:Note, this directive requires ngModel to be present. <label for=&q ...

  8. $(document).ready、body.Onload()和 $(window).load的区别

    window.load(function(){...})和body.onload()都存在同样一个问题,那都是在页面所有元素(包括html标签以及引用到得所有图片,Flash等媒体)加载完毕后执行的, ...

  9. Java数据库——CallableStatement接口

    建立一个过程,建立的时候要加DELIMITER // IN——只能输入,不能输出,修改之后保留修改的数据 INOUT——可以的输入,也可以输出,修改时输出的是修改后的数据,但是再次输出的时候是最先的数 ...

  10. Java @Override报错

    问题 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误:The method *** of type *** must override a superclass ...