邮件系统角色:

MTA:邮件传输代理 接受客户端发来的邮件,并可以转发给其他的MTA (如:postfix,senmail,exchange)

MUA:    邮件用户代理  为客户端提供一个结束发送邮件的界面 (如:outlook)

MDA:邮件分发代理    负责把邮件分发给邮件用户邮箱 在后台工作的程序

邮件协议:

SMTP: 简单邮件传输    客户端和MTA,MTA和MTA  之间用这个 25端口 如果是支持发信认识的邮件服务器 将采用扩展SMTP协议

pop3   邮局协议 用于从邮件服务器上收取邮件 110端口 离线协议

IMAP   互联网消息访问协议   也是收取邮件的 比pop3更强大灵活 也是离线协议 143端口

我用的RHEL5的系统 ,安装前先把sendmail服务停掉,完后设成开机不自动启动;

先把几个依赖的包用yum -y  install   db*-devel   cyrus-sasl-*    准备做完了

1:建程序用户和组

 

  1. groupadd -g 1200 postdrop  
  2. groupadd -g 1000 postfix  
  3. useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix 

2:解压,打补丁

 

  1. #tar zxvf postfix-2.xxxx.gz  
  2. #gunzip postfixpostfix-2.4.6-vda-ng.path.gz  
  3. #cd postfix-2.4.6  
  4. #path -pl < ../postfix-2.4.6-vda-ng.patch 

3:配置makefile文件

编译前需要用make makefiles调整参数 支持SASL和mysql README_FILES下有说明文件

  1.   #make makefiles \  
  2. 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH \' 
  3. >-DUSE_CYRUS_SASL -I/usr/include/sasl' \  
  4. >'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2' 
  5. //CCARGS 为编译提供额外的参数 -I 指出标准的额外头文件外置  
  6. //AUXLIBS  指出位于标准位置之后的额外数据库 

4:编译安装:

make && make install   执行完这个命令后会让设置一些参数 我都是使用默认了 除非有特殊要求 具体:

 

  1. install_root: [/]     //指定系统的根目录  
  2. tempdir: []       //postfix-install 脚本使用的临时文件位置  
  3. config_directory   //配置文件存放的目录  
  4. command_directory   //命令存放目录  
  5. queue_directory     //邮件队列存放目录 

基本就安装完事了!!!

postfix目录   /etc/postfix   主配置文件  各种脚本  查询表等

                    /usr/libexec/postfix/    各个服务器程序文件

                    /var/spool/postfix      邮件队列相关子目录 (incoming 传入    active 活动  deferred  推迟   hold  约束    corrupt  错误)

                   /usr/sbin   管理工具程序   (postalias  构建别名表     postconfig  显示和编辑主配置文件   postfix   启动关闭服务  postmap  修改查询表  postqueue  管理邮件队列  postsuper  管理邮件队列  有root权限)

postfix服务器的配置文件包括 /etc/postfix/main.cf (postfix)    /etc/postfix/master.cf (master)

使用:

postconf   显示当前postfix所使用的配置参数   加-n   只列出不同于默认值的配置选项

可以使用它来简化主配置文件

 

  1. #cd /etc/postfix          (切换到主配置文件所在的目录)  
  2. #postconf -n > main2.cf   (用那个命令显示一下postfix的配置 加-n的话就是显示不同于默认选项的配置 完后从新定向到main2.cf中)  
  3. #mv main.cf main.cf.bak    (把之前的主配置文件改名 也就是备份一下)  
  4. #mv main2.cf main.cf       (把用命令做的主配置文件改成默认主配置文件)  
  5. #cat main.cf                (可以显示一下我们最后做完的结果) 

postfix日志位于 /var/log/maillog中:

tail  -f  /var/log/maillog    动态查看日志

 

  1. egrep '(reject|warninf|error|fatal|panic):' /var/log/maillog 

只过滤那几个级别的日志文件

启动: postfix   start     之后去看25口是否监听

               postfix check  检查配置文件      postfix   reload   重新加载

配置postfix让他可以使用:

 编辑主配置文件,调整基本运行参数:

 

  1. vi /etc/postfix/main.cf  
  2. inet_interfaces = all //监听的ip,看情况改  
  3. myhostname = mail.benet.com   //postfix服务器使用的主机名  
  4. mydomain = example.com    //使用的邮件域  
  5. myorigin = $mydomain    //外发邮件发件人地址中的邮件域名  
  6. mydestination = $mydomain, $myhostname //设置可接受邮件地址中的域名  
  7. home_mailbox = Maildir/     //设置邮件存储位置和格式 有两种 mailbox 和 maildir 

添加邮件账户:默认使用本机系统用户作为邮件帐号

 

  1. #groupadd mailusers  
  2. #useradd -g mailusers -s /sbin/nologin zhangsan  
  3. #useradd -g mailusers -s /sbin/nologin lisi  
  4. #passswd zhangsan   
  5. #passwd lisi 

SMTP测试发邮件:

 

  1. #telnet localhost 25    //telnet25口  
  2. 220 mail.example.com ESMTP postfix  
  3. helo localhost        //宣告客户端主机地址  
  4. mail from: zhangsan@example.com //宣告服务器发件人地址  
  5. rcpt to: lisi@example.com    //告知服务器收件人地址  
  6. data                   //告知服务器要传输数据  
  7. subject: a test mail     //邮件主题  
  8. hello this is a test mail!!!    //邮件内容  
  9. .                       //邮件以.结束   回车  
  10. quit          //完事  退出 

可以到相应的用户宿主目录下的maildir/new/看是不是有刚才的邮件