[url]http://blog.sina.com.cn/s/blog_485acedb010080gi.html[/url]

#killall sendmail (停止所有的Sendmaail进程)

[b]启动postfix + dovecot服务过程:[/b]

 # service postfix start

 Starting postfix: [ 确定 ]

 # service dovecot start

 启动 Dovecot Imap: [ 确定 ]

[b]修改/etc/dovecot.conf文件:[/b]

 #protocols = imap imap3

 更改为:

 protocols = imap imap3 pop3 pop3s (启动imap imap3 pop3 pop3s功能)

 # service dovecot restart(重新启动dovecot服务)

 停止 Dovecot Imap: [ 确定 ]

 启动 Dovecot Imap: [ 确定 ]

[b]修改/etc/postfix/main.cf文件:[/b]

 myhostname = mail.example.com(指定运行Postfix邮件系统的主机名称)

 mydomain = nseasy.net (指定Postfix邮件系统使用的域名比例:example.com)

 #myorigin = $mydomain (指定发件人所在的域名比例:example.com)

 Inet_interfaces =all (指定Postfix邮件系统监视的网络接口)

 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, www.$mydomain,ftp.$mydomain (指定Postfix接收邮件时收件人的域名)

 mynetworks = 172.16.33.0/24 (指定您所在的网络地址)


 # service postfix restart (重新启动postfix服务)

 Shutting down postfix: [ 确定 ]

 Starting postfix: [ 确定 ]

[b]加主机名:[/b]

 vi /etc/hosts

 172.16.33.11 mail.example.com example.com

[b]本地主机解析:[/b]

# ping mail.example.com

PING mail.example.com (172.16.33.11) 56(84) bytes of data.

64 bytes from mail.example.com (172.16.33.11): icmp_seq=0 ttl=64 time=0.073 ms

64 bytes from mail.example.com (172.16.33.11): icmp_seq=1 ttl=64 time=0.029 ms


--- mail.example.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.029/0.051/0.073/0.022 ms, pipe 2

# ping example.com

PING mail.example.com (172.16.33.11) 56(84) bytes of data.

64 bytes from mail.example.com (172.16.33.11): icmp_seq=0 ttl=64 time=0.064 ms

64 bytes from mail.example.com (172.16.33.11): icmp_seq=1 ttl=64 time=0.031 ms


--- mail.example.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.031/0.047/0.064/0.017 ms, pipe 2

[b]端口测试:[/b]

 # telnet mail.nseasy.net 25 (测试25端口)Trying 127.0.0.1...

 Connected to localhost.localdomain (127.0.0.1).

 Escape character is '^]'.

 220 mail.easy.com ESMTP Postfix

 quit

 221 Bye

 Connection closed by foreign host.

 # telnet nseasy.net 110 (测试110端口)Trying 127.0.0.1...

 Connected to localhost.localdomain (127.0.0.1).

 Escape character is '^]'.

 +OK dovecot ready.

 quit

 +OK Logging out

 Connection closed by foreign host.

******************************************************************************************

[b]在main.cf文件中增加以下的代码: [/b] (reject_unauth_destination是smtp验证用的)

vi /etc/postfix/main.cf

# restrictions

message_size_limit = 30720000

smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination

smtpd_sasl_application_name = smtpd

smtpd_sasl_local_domain= ''

smtpd_sasl_auth_enable = yes

smtpd_client_restrictions = permit_sasl_authenticated

smtpd_sasl_security_options=noanonymous

******************************************************************************************

注意 iptables 中加上110

至此可以在邮件客户端收发mail

******************************************************************************************

[color=red][b]注意事项:[/b][/color]

1、Redhat AS4 不带IAMP包了,改为用cyrus-imapd 。使用webmail,必须运行cyrus-imapd 服务。

/etc/rc.d/init.d/cyrus-imapd restart

注意:必须先启动 dovecot 服务,然后才启动 cyrus-imapd 服务,否则会报错。

2、 1. 从FC2版开始就不直接提供POP3服务了,改由dovecot服务来提供。Redhat AS4 的dovecot做pop3服务,配置如下:

编辑 /etc/dovecot.conf :

 a 找到 protocols = imap imaps,在该行后加上,并加上protocols = pop3 imap

 protocols = imap imaps

 protocols = pop3 imap

 b 找到auth_userdb,auth_passdb,改为如下几行:

 auth_userdb = passwd

 auth_passdb = shadow

[b]重启dovecot服务:[/b]/etc/rc.d/init.d/dovecot restart

******************************************************************************************

etc/dovecot.conf:

 ## Dovecot 1.0 configuration file

 protocols = imap imaps

 protocols = pop3 imap #新增

 imap_listen = [::]

 pop3_listen = [::]

 login_dir = /var/run/dovecot-login

 ##

 ## IMAP login process

 ##

 login = imap

 ##

 ## POP3 login process

 ##

 login = pop3

 mbox_locks = fcntl

 auth = default

 auth_mechanisms = plain

 auth_userdb = passwd #修改

 auth_passdb = shadow #修改

 auth_user = root

******************************************************************************************

SASL部分的配置.其实也是很简单.具体如下:

#ln -s /usr/lib/sasl2 /usr/local/lib/sasl2 -------这个连接是必须要做的.因为POSTFIX从/usr/local/lib/sasl2 的路径读取SASL的验证机制 

配置Cyrus-sasl

确定已安装完Cyrus-sasl后,启动该服务: /etc/init.d/saslauthd start //启动Cyrus-sasl服务。

chkconfig saslauthd on //把Cyrus-sasl设置为开机自启动。

测试一下是否成功: testsaslauthd –u 系统用户名 –p ‘对应的密码’或/usr/sbin/testsaslauthd –u 系统用户名 –p ‘对应的密码’

如果提示:

0: OK "Success."

则说明已安装成功!

注:Cyrus-sasl的功能就是实现密码验证机制。

#vi /usr/local/lib/sasl2/smtpd.conf

 pwcheck_method: saslauthd

mech_list: plain login

#/sbin/./service postfix restart

******************************************************************************************

[b]别名:[/b]

/etc/postfix/main.cf 中查看 alias_maps = hash:/etc/aliases

vi /etc/aliases 新加user的别名useralias 在最后以行加入

useralias: user

存盘退出

# postalias /etc/aliases

# postfix reload

postfix/postfix-script: refreshing the Postfix mail system

******************************************************************************************

[b]共享网域设置 (搭配系统帐户):[/b]

vi /etc/hosts

172.16.33.235 mail.netgen.com.cn netgen.com.cn handinweb.com mail.handinweb.com

vi /etc/postfix/main.cf

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, handinweb.com, mail.handinweb.com

# postfix reload

postfix/postfix-script: refreshing the Postfix mail system

******************************************************************************************

[b]检查当前postfix配置是否有问题[/b] 文件与目录的拥有权是否正确甚至帮你创建丢失的目录:

# [color=blue][b]postfix check[/b][/color]

[color=red]没有消息就是好消息[/color]

******************************************************************************************

[b]日志检查:[/b]可以用这个命令查看mail的错误记录

 egrep '(reject|warning|error|fatal|panic):' /var/log/maillog

******************************************************************************************

[b]邮件大小尺寸控制:[/b] 30M

# pwd

/etc/postfix

# vi main.cf

message_size_limit = 30720000

[b]默认邮箱大小为300M[/b](下面两项都要设置才能设置默认邮箱大小为300M)

mailbox_size_limit = 307200000 //默认的邮箱大小

virtual_mailbox_limit = 30720000 //默认的邮箱大小 

******************************************************************************************

procmail 和 spamassassin 参照aime下的文档

******************************************************************************************

******************************************************************************************

[b]postfix管理[/b]

邮件配置好后,会设置五个不同的用途的队列,包括输入(incoming),活动(active),等待(deferred),故障(corrupt),保留(hold),每一个队列在queue_directory参数指定的路径下各有一个专属的子目录。默认的队列目录是/var/spool/postfix,所以你的邮件服务器有类似下面的目录:

/var/spool/postfix/active;

/var/spool/postfix/bounce;

/var/spool/postfix/corrupt;

/var/spool/postfix/deferred/;

/var/spool/postfix/hold;

postfix //管理队列

postqueue -p //显示邮件队列

postqueue -f //要求postfix立刻投递滞留在队列里的邮件

postsuper -d ALL //删除邮件队列中的所有邮件注:有可能是误删除或删除了不该删除的信,所以谨用此命令。

postquper -h 邮件队列ID(如DBA3F1A9),//执行之后,你会发现,该邮件的queue ID 多了一个感叹号,如果想再次投递该邮件,把-h改成-H即可,postfix就会按照正常顺序再次投递该邮件;

postsuper -r ALL //重新给邮件排队,得到一个新的queue ID,再次投递邮件;

postcat -q 邮件队列号(如DBA3F1A9) //查看该邮件内容;

如果希望postfix在第一次递送邮件失败时就立刻退信,你可以将maximal_queue_lifetime(这个选项参数加在/etc/postfix/main.cf的最后一行就OK了。)设为0和bounce_queue_lifetime = 0即可,默认是5D,(5天);

如果你经常有寄不出去的等等待邮件,或许你应该考虑适度加大maximal_backoff_time(默认是4000秒,本人设为9000秒),让postfix不要浪费太多资源于等待邮件,上数参数都在/etc/postfix/main.cf配置文件里;


[b]access文件的创建[/b]

首先在/etc/postfix/main.cf里面的smtpd_client_restrictions = permit_sasl_authenticated后面加,(小写的,)再加上check_client_access hash:/etc/postfix/access,然后service postfix reload(重新加载postfix配置文件)和service postfix restart(重写postfix 服务).

然后再编辑/etc/postfix/access文件,格式和以前sendmail格式相同。最后用postmap /etc/postfix/access命令生成access数据库。即可控制转发等和sendmail相同的效果了。(文件最好加在/etc/postfix/access文件的最后一行加入需要转发或是拒绝的地址或是域名即可)。

如果以WEB方式式收发邮件的话,发送附件大小可以修改:

1、打开/etc/php.ini,修改以下内容:

register_globals=on

max_execution=30 //改为60

memory_limit=8M //改为80M

post_max_size=8M //改为20M

upload_max_filesize=2M //改为20M

2、打开main.cf,添加一行:message_size_limit=20480000