linuxPostfix邮件服务安装和基本配置


一、postfix邮件服务的安装

Red Hat Enterprise Linux 提供了sendmail和postfix两种STMP邮件服务软件,让用户可以随意地选择其中一种!不过,默认情况下安装程序已将sendmail安装到系统中了,如果要使用postfix,就必须先将sendmail服务停止,然后再安装postfix服务软件。具体操作步骤如下:

1).检查sendmail服务是否已启动

  [root@mail~]#netstat -nutlp | grep :25

2>. 关闭sendmail服务及开机时自启动

  [root@mail~]#/etc/rc.d/init.d/sendmail stop

    [root@mail~]#chkconfig sendmail off

3>.安装postfix服务

将Red Hat Enterprise Linux5的第3张安装盘放入光驱,加载光驱后在光盘的Server目录下找到postfix的RPM安装包文件postfix-2.3.3-2.i386.rpm,然后使用

下面rpm安装:

  [root@mail~]#rpm -ivh /mnt/Server/postfix-2.3.3-2.i386.rpm

源码包安装:

   [root@mail~]# groupadd -g 1000 postfix

   [root@mail~]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

   [root@mail~]# groupadd -g 1200 postdrop

   [root@mail~]# tar zxvf postfix-2.6.2.tar.gz

   [root@mail~]#gunzip postfix-2.6.2-vda-ng.patch.gz

   [root@mail~]# cd postfix-2.6.2

   [root@mailpostfix-2.6.2]#patch -pl < ../postfix-2.6.2-vda-ng.patch

   [root@mailpostfix-2.6.2]#make makefiles \\`CCARGS=-DHAS_MYSQL-I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL-I/usr/local/include/sasl -I/usr/local/BerkeleyDB/include -DUSE_TLS-I/usr/local/ssl/include/openssl ' 'AUXLIBS=-L/usr/local/mysql/lib/mysql-lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -L/usr/local/BerkeleyDB/lib -L/usr/local/ssl/lib-lssl -lcrypto'

其中,编译参数CCARGS和AUXLIBS的作用如下:

       CCARGS参数:为编译器提供额外的参数。“-I”选项指出标准的额外头文件的存放目录。例如,mysql和cyrus-sasl的头文件分别位于目录:/usr/local/mysql/lib/mysql、/usr/include/sasl.

       AUXLIBS参数:指出位于标准位置之外的额外函数库。如果需要链接SASL、MySQL或任何附加的函数库,而且他们不是存在标准位置(/usr/lib目录),则必须在AUXLIBS参数中指出这些函数库的路径,例如,mysql和cyrus-sasl的库文件分别位于目录:/usr/local/mysql/lib/mysql、/usr/lib/sasl2。

   [root@mailpostfix-2.6.2]# make

   [root@mailpostfix-2.6.2]# make install

执行“make install”命令以后,期间会需要设置一些安装参数,

按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值)

   install_root:[/] /

   tempdir:[/root/postfix-2.6.2]

   config_directory:[/etc/postfix]

   daemon_directory:[/usr/libexec/postfix]

   command_directory:[/usr/sbin]

   queue_directory:[/var/spool/postfix]

   sendmail_path:[/usr/sbin/sendmail]

   newaliases_path:[/usr/bin/newaliases]

   mailq_path:[/usr/bin/mailq]

   mail_owner:[postfix]

   setgid_group:[postdrop]

   html_directory:[no]

   manpages:[/usr/local/man]

   readme_directory:[no]

以上做完回车键,默认自动识别设置。postfix的编译安装成功!


二、Postfix的目录及配置文件:

1.Postfix的相关目录

   /etc/postfix:该目录中包括Postfix服务的主配置文件、各类脚本、查询表等。

   /usr/libexec/postfix/:该目录中包括Postfix服务的各个服务器程序文件。

   /var/spool/postfix/:该目录中包括Postfix服务的邮件队列相关的子目录。

其中每个队列子目录用于保存不同的邮件,比如说:

       1>.Incoming(传入):刚接收到的邮件。

       2>.Active(活动):正在投递的邮件。

       3>.Deferred(推迟):以前投递失败的邮件。

       4>.Hold(约束):被阻止发送的邮件。

       5>.Corrupt(错误):不可读或不可分析的邮件。

   /usr/sbin/:该目录中包括Postfix服务的管理工具程序,这些程序文件名以post开头。其中,主要的几个程序文件及其作用如下。

       1>.Postalias:用于构造、修改和查询别名表。

       2>.Postalias:用于显示和编辑main.cf配置文件。

       3>.Postfix:用于启动、停止postfix,要求有root用户权限。

       4>.Postmap:用于构造、修改或者查询查询表。

       5>.Postqueue:用于管理邮件队列,一般用户使用。

       6>.Postsuper:用于管理邮件队列,要求有root用户权限。

2.Postfix的配置文件

   Postfix系统最主要的配置文件包括:/etc/postfix/main.cf和/etc/postfix/master.cf,前者是Postfix服务的配置文件,后者是master程序的配置文件。

使用postconf工具可以查看当前Postfix服务所使用的配置参数

使用postconf工具还可以简化main.cf文件,只保留与默认配置不同的参数,如下:

   [root@mailpostfix]# postconf -n > main.cf

   [root@mailpostfix]# mv main.cf main.cf.bak   //备份

   [root@mailpostfix]# mv main2.cf main.cf

   [root@mailpostfix]# cat main.cf

3.Postfix的日志文件

   Postfix系统的日志文件位于“/var/log/maillog”,此文件记录了Postfix服务器的运行状态信息。我们可以经常使用带“-f”选项的tail命令查看日志。如果日志太多了我们可发使用egrep命令进行过滤。

4.postfix的启动控制

   Postfix系统的启动控制主要通过“/usr/sbin/postfix”命令进行,后面添加相应的start、stop、check、reload参数即可分别启动、停止、检查、重载postfix服务。

三、基于Postfix构建简单电子邮件

1.配置并测试Postfix服务器

   1>.编辑main.cf文件,调整Postfix的基本运行参数

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

   inet_interfaces= 172.16.16.1,127.0.0.1   //设置监听的IP

   myhostname= mail.qq.com    //设置主机名

   mydomain= qq.com        //设置邮件域

   myorigin= $mydomain     //设置外发邮件时发件人地址中的邮件域名

   mydestination= $mydomain,$myhostname  //设置可接收的邮件地址中的域名

   home_mailbox=Maildir/     //设置邮件存储位置和格式

   2>.添加邮件用户的帐号

   [root@mail~]# groupadd mailusers

   [root@mail~]# useradd -g mailusers -s /sbin/nologin qq001

   [root@mail~]# useradd -g mailusers -s /sbin/nologin qq002

   [root@mail~]# passwd qq001

   3>.测试SMTP发送邮件

   [root@mail~]# telnet localhost 25

   Trying127.0.0.1...

   Connectedto localhost.localdomain (127.0.0.1).

   Escapecharacter is '^]'.

   220mail.qq.com ESMTP Postfix

   helolocalhost   //宣告客户端地址

   250mail.qq.com

   mailfrom:qq001@qq.com   //告知服务器发件人地址

   2502.1.0 Ok

   rcptto:qq002@qq.com     //告知服务器收件人地址

   2502.1.5 Ok

   Data   //告知服务器要传送数据了

   354End data with .

   subject:ILove You!    //主题

   hello!   //邮件内容以点结束

   .

   2502.0.0 Ok: queued as 27ECCE01ED

   Quit    //退出

   2212.0.0 Bye

   Connectionclosed by foreign host.

我们到邮件用户qq002的宿主目录下进行查看,可以看到刚刚接收到的邮件保存在Maildir子目录中。

   [root@mail~]# cat /home/qq002/Maildir/new/1611777596.Vfd00I258020M248704.mail.qq.com

   Return-Path:   //退信地址

   X-Original-To:qq002@qq.com   //来源地址

   Delivered-To:qq002@qq.com    //目标地址

   Received:from localhost (localhost.localdomain [127.0.0.1])

       by mail.qq.com(Postfix) with SMTP id 27ECCE01ED  //经过的MTA

       for; Thu, 28 Jan 2021 03:57:40 +0800 (CST)

   subject:ILove You!

   Message-Id:<20100127195752.27ecce01ed@mail.qq.com>

   Date:Thu, 02 Tuesday 2010 03:57:40 +0800 (CST)   //时间

   From:qq001@qq.com   //发件人地址

   To:undisclosed-recipients:;

   helle!

   Postfix服务器已经搭建好了!

2.构建Dovecot服务器

   1>.编译安装Dovecot软件包

   [root@mail~]# useradd -M -s /sbin/nologin dovecot

   [root@mail~]# tar zxf dovecot-1.1.4.tar.gz

   [root@mail~]# cd dovecot-1.1.4

   [root@maildovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql

   [root@maildovecot-1.1.4]# make ; make install

说明:如果dovecot用户无法创建,说明系统中默认就有了直接用就可以了

   2>.配置Dovecot的运行参数

<1>.建立dovecot.conf配置文件并进行简单设置

       [root@maildovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf

       [root@maildovecot-1.1.4]# vi /etc/dovecot.conf

       ssl_disable= yes  //禁用SSL机制

       protocols= pop3 imap   //制定支持的邮局协议

       disable_plaintext_auth= no   //允许明文密码认证

       mail_location= maildir:~/Maildir   //设置邮件存储格式及位置

<2>.创建PAM认证文件

       [root@mail~]# vi /etc/pam.d/dovecot

       auth      required     pam_nologin.so

       auth      include      system-auth

       account   include      system-auth

       session   include      system-auth

说明:说的是创建,其实系统里默认就有了。

   3>.启动Dovecot服务,并查看其监听的TCP端口(110、143)

   [root@mail~]# /usr/local/sbin/dovecot -c /etc/dovecot.conf

   [root@mail~]# netstat -nutpl | grep dovecot

   tcp       0      0 0.0.0.0:110                0.0.0.0:*                  LISTEN      23251/dovecot

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

   dorecot服务的启动程序位于“/usr/local/sbin”目录中,使用-c选项可以指定所使用的配置文件的位置,如果使用默认配置文件,则直接执行“dovecot”命令即可。

   4.   测试POP3接收邮件

   [root@mail~]# telnet localhost 110

   Trying127.0.0.1...

   Connectedto localhost.localdomain (127.0.0.1).

   Escapecharacter is '^]'.

   +OKDovecot ready.

   userqq002  //使用邮件用户“zpp002”登录

   +OK

   pass123.com  //键入密码123.com

   +OKLogged in.

   List   //查看邮件列表

   +OK1 messages:

   1485

   .

   retr1   //收取并查看第一封邮件内容

   +OK485 octets

   Return-Path:

   X-Original-To:qq002@qq.com

   Delivered-To:qq002@qq.com

   Received:from localhost (localhost.localdomain [127.0.0.1])

          by mail.qq.com (Postfix) with SMTP id27ECCE01ED

           for ; Thu, 28 Jan 202103:57:40 +0800 (CST)

   subject:ILove You!

   Message-Id:<20210127195752.27ecce01ed@mail.qq.com>

   Date:Thu, 28 Jan 2021 03:57:40 +0800 (CST)

   From:qq001@qq.com

   To:undisclosed-recipients:;

   hello!

   .

   quit

3.使用outlook Express邮件客户端

   1>.启动outlook Express邮件客户端服务

在windows xp系统中通过:“开始”菜单—“程序”—“outlook Express”

   2>.设置用户使用的邮件账户

设置:邮件账号名称、登录口令、SMTP服务器地址、POP3服务器地址

   3>.验证邮件服务器的发信、收信功能

通过菜单栏中的“发送/接受”