HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2013-09-10 17:24:02

首先:使用Postfix dovecot配置简单的邮件系统


一、安装Postfix

  1. yum install postfix

在CentOS系统一般都自带sendmail的,如果你不需要了,可以使用以下命令删除:

  1. rpm -e sendmail

二、更改默认邮件传输代理(MTA)

我们先来检查默认的MTA

  1. alternatives --display mta

  1. mta - status is manual.

  2. link currently points to /usr/sbin/sendmail.sendmail

  3. /usr/sbin/sendmail.sendmail - priority 90

  4. slave mta-pam: /etc/pam.d/smtp.sendmail

  5. slave mta-mailq: /usr/bin/mailq.sendmail

  6. slave mta-newaliases: /usr/bin/newaliases.sendmail

  7. slave mta-rmail: /usr/bin/rmail.sendmail

  8. slave mta-sendmail: /usr/lib/sendmail.sendmail

  9. slave mta-mailqman: /usr/share/man/man1/mailq.sendmail.1.gz

  10. slave mta-newaliasesman: /usr/share/man/man1/newaliases.sendmail.1.gz

  11. slave mta-aliasesman: /usr/share/man/man5/aliases.sendmail.5.gz

  12. slave mta-sendmailman: /usr/share/man/man8/sendmail.sendmail.8.gz

  13. /usr/sbin/sendmail.postfix - priority 30

  14. slave mta-pam: /etc/pam.d/smtp.postfix

  15. slave mta-mailq: /usr/bin/mailq.postfix

  16. slave mta-newaliases: /usr/bin/newaliases.postfix

  17. slave mta-rmail: /usr/bin/rmail.postfix

  18. slave mta-sendmail: /usr/lib/sendmail.postfix

  19. slave mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz

  20. slave mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz

  21. slave mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz

  22. slave mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz

  23. Current `best' version is /usr/sbin/sendmail.sendmail.

我们从以上看出,现在默认的MTA是sendmail。所以我们需要键入以下命令更新MTA为Postfix。

  1. /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

再次检查看MTA是不是改为Postfix了。

  1. alternatives --display mta

三、配置Postfix

Postfix配置文件主要是两个master.cf和main.cf,这里我们只需要配置main.cf,即/etc/postfix/main.cf。
编辑main.cf文件

  1. vim /etc/postfix/main.cf

在文件main.cf找到以下的几行并按照下面的更改好。

  1. myhostname = mail.1a-centosserver.com

  2. mydomain = 1a-centosserver.com

  3. myorigin = $mydomain

  4. inet_interfaces = all

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

  6. mynetworks = 192.168.13.0/24, 127.0.0.0/8

  7. relay_domains =

  8. home_mailbox = Maildir/

配置文件解释:
mydomain:
mydomain参数是指email服务器的域名,请确保为正式域名(如centos.bz)
myhostname:
myhostname参数是指系统的主机名称(如我的服务器主机名称是mail.centos.bz)
myorigin:
myorigin参数指定本地发送邮件中来源和传递显示的域名。在我们的例子中,mydomain是centos.bz,也是我的域名。
对于下面的一行,我们的邮件地址是user@centos.bz而不是user@mail.centos.bz。
myorigin = $mydomain
mynetworks:
mynetworks参数指定受信任SMTP的列表,具体的说,受信任的SMTP客户端允许通过Postfix传递邮件。
mydestination:
mydestination参数指定哪些邮件地址允许在本地发送邮件。这是一组被信任的允许通过服务器发送或传递邮件的IP地址。用户试图通过发送从此处未列出的IP地址的原始服务器的邮件将被拒绝。
inet_interfaces:
inet_interfaces参数设置网络接口以便Postfix能接收到邮件。
relay_domains:
该参数是系统传递邮件的目的域名列表。如果留空,我们保证了我们的邮件服务器不对不信任的网络开放。
home_mailbox:
该参数设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。

四、测试Postfix SMTP连接

1、检查Postfix是否已经启动

  1. service postfix status

  2. master (pid 4073) is running...

如果没有使用service postfix start启动
2、检测默认smtp端口25是否已经监听

  1. netstat -an | grep 25

  2. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN

3、设置postfix开机启动

  1. chkconfig postfix on

4、开始测试postfix是否工作正常。

  1. telnet localhost 25

  2. Trying 127.0.0.1...

  3. Connected to localhost.localdomain (127.0.0.1).

  4. Escape character is '^]'.

  5. 220 mail.centos.bz ESMTP Postfix

  6. ehlo mail

  7. 250-mail.centos.bz

  8. 250-PIPELINING

  9. 250-SIZE 10240000

  10. 250-VRFY

  11. 250-ETRN

  12. 250-ENHANCEDSTATUSCODES

  13. 250-8BITMIME

  14. 250 DSN

  15. mail from:<jane>

  16. 250 2.1.0 Ok

  17. rcpt to:<james>

  18. 250 2.1.5 Ok

  19. data

  20. 354 End data with <CR><LF>.<CR><LF>

  21. This is a test mail send from Jane

  22. .

  23. 250 2.0.0 Ok: queued as 8E93F27DF3

  24. quit

  25. 221 2.0.0 Bye

  26. Connection closed by foreign host.

邮件发送到哪里了?所有的邮件已经发送到/home/user/Maildir/new。我们以上的例子,邮件已经发送到/home/james/Maildir/new。我们可以使用cat命令查看。

五、邮件别名设置

设置邮件别名可以使多个用户收到来自一个用户(如root)发送的邮件。
1、配置邮件别名
邮件别名的配置文件在/etc/aliases里,格式如下:
[Format]
Receiving Account or other aliases : recipient A, recipient B, recipient C ..
例1:重新发送邮件到另一用户
root:root,james
上面的例子表示,root用户的邮件对于用户james和root都可以接收到。
例2:设置群邮件
class2011: james, ann, mark
上面的例子表示我们设置了群邮件名class2011.当tutor发送一封邮件到class2011@centos.bz时,一群用户(如james,ann,mark)都会收到邮件。
2、使用“newaliases”命令激活邮件别名功能
当我们编辑/etc/aliases文件后,必须执行“newaliases”命令来更新别名数据库。

六、POP/ IMAP设置

为了让用户能在本地机器下载邮件,你必须在你的CentOS Linux邮件服务器安装设置POP或IMAP。Dovecot是适用CentOS Linux邮件系统有名的imap/pop服务器之一,它支持maildir和mbox格式。
安装配置Dovecot
首先检测dovecot软件包是否已经安装

  1. rpm -qa dovecot

否则,你可以使用yum命令安装

  1. yum -y install dovecot

Dovecot的配置文件在/etc/dovecot.conf。我们只需要改变少量的代码就可以让POP3工作。

  1. vim /etc/dovecot.conf

  2. # Protocols we want to be serving: imap imaps pop3 pop3s

  3. # If you only want to use dovecot-auth, you can set this to "none".

  4. protocols = imap imaps pop3 pop3s

删除protocols行前面的“#”以激活imap imaps pop3和pop3s服务。
启动dovecot服务。

  1. service dovecot start

设置dovecot开机启动。

  1. chkconfig dovecot on

测试Dovecot服务。
1、使用telnet检测110(POP3)和143(IMAP)端口

  1. telnet 127.0.0.1 110

  2. Trying 127.0.0.1...

  3. Connected to mail.centos.bz (127.0.0.1).

  4. Escape character is '^]'.

  5. +OK Dovecot ready.

  6. quit

  7. +OK Logging out

  8. Connection closed by foreign host.

  9. telnet 127.0.0.1 143

  10. Trying 127.0.0.1...

  11. Connected to mail.centos.bz (127.0.0.1).

  12. Escape character is '^]'.

  13. * OK Dovecot ready.

2、使用“ps aux | grep dovecot”命令来显示dovecot守护进程

  1. ps aux | grep dovecot

  2. root 10322 0.0 0.0 1868 576 ? Ss 12:17 0:00 /usr/sbin/dovecot

  3. root 10323 0.0 0.2 7692 1864 ? S 12:17 0:00 dovecot-auth

  4. dovecot 10325 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login

  5. dovecot 10326 0.0 0.2 4884 1744 ? S 12:17 0:00 pop3-login

  6. dovecot 10328 0.0 0.2 4888 1748 ? S 12:17 0:00 imap-login

  7. dovecot 10330 0.0 0.2 4888 1752 ? S 12:17 0:00 imap-login

  8. dovecot 10332 0.0 0.2 4884 1740 ? S 12:17 0:00 pop3-login

  9. dovecot 10338 0.0 0.2 4888 1752 ? S 12:19 0:00 imap-login

  10. root 10347 0.0 0.0 3912 672 pts/3 R+ 12:23 0:00 grep dovecot

七、配置使用Dovecot SASL进行SMTP验证

1、编辑 /etc/dovecot.conf,确保auth default区域有如下设置值:

  1. auth default {

  2.  socket listen {

  3.    client {

  4.  path = /var/spool/postfix/private/auth

  5.  mode = 0660

  6.  user = postfix

  7.  group = postfix

  8.    }

  9.  }

  10.  mechanisms = plain login

  11. }

2、编辑/etc/postfix/main.cf,增加如下代码启用sasl认证。

  1. smtpd_sasl_type = dovecot

  2. smtpd_sasl_path = private/auth

  3. smtpd_sasl_auth_enable = yes

  4. smtpd_recipient_restrictions =  permit_mynetworks,

  5.    permit_sasl_authenticated, reject_unauth_destination

  6. broken_sasl_auth_clients = yes

3、重启服务

  1. service postfix restart

  2. service dovecot restart

现在你可以使用邮件客户端代理软件和系统用户及密码来连接我们的Dovecot服务器了。


原文:http://www.centos.bz/2011/06/centos-install-setup-postfix/



然后配置 squirrelmail


SquerrilMail

安装 SquirrelMail

  • SquerrilMail 官方网站下载页面 下载最新版本(本文档使用的是 1.4.13 版本)。

  • 解压到服务器的 /var/www/ 目录:

  • # export VERSION='1.4.13'
    # bzip2 -d squirrelmail-${VERSION}.tar.bz2    
    # tar xf squirrelmail-${VERSION}.tar -C /var/www/
    # cd /var/www/htdocs/
    # ln -s ../squirrelmail-${VERSION} mail
  • 设置权限:

  • # chown -R www:www /var/www/squirrelmail-${VERSION}/
    # chmod -R 755 /var/www/squirrelmail-${VERSION}/
  • 创建目录,用于存放邮件附件等数据:

  • # cd /var/www/squirrelmail-${VERSION}/
    # mkdir data attach
    # chown www:www data attach
    # chmod 730 attach

配置 SquirrelMail

SquirrelMail 为管理员提供了方便的配置工具(一个 Perl 脚本),运行之后显示的是这样的菜单:

# /var/www/htdocs/mail/config/conf.pl

SquirrelMailConfiguration:Read: config.php (1.4.0)
---------------------------------------------------------
MainMenu--
1.  OrganizationPreferences
2.  ServerSettings
3.  FolderDefaults
4.  GeneralOptions
5.  Themes
6.  AddressBooks
7.  Message of the Day(MOTD)
8.  Plugins
9.  Database
10.Languages

D
.  Set pre-defined settings for specific IMAP servers

C  
Turn color on
S  
Save data
Q  
Quit

Command>>

输入菜单前的数字或字母即可进入对应的配置选项。

这里有几个参数需要修改:

  • Server Settings

    • Update IMAP Settings

      • IMAP Server(将 localhost 改成 '127.0.0.1')

      • SMTP Server(将 localhost 改成 '127.0.0.1')

  • General Options

    • Data Directory (设置为:/squirrelmail-${VERSION}/data/。一定要记得将这里的 ${VERSION} 替换为实际的版本号。)

    • Attachment Directory (设置为:/squirrelmail-${VERSION}/attach/。一定要记得将这里的 ${VERSION} 替换为实际的版本号。)

  • Languages

    • Default Language(设置为 zh_CN)

    • Default Charset(改成 gb2312,否则会导致邮件乱码)

  • Set pre-defined settings for specific IMAP servers (选择 courier)

NOTE: chrooted apache

因为 Apache 默认是被 chroot 在 /var/www/ 目录下,所以这里的 "Data Directory" 和 "Attachment Directory" 目录的路径不能加 /var/www/。


TIP: 检查配置

配置完成之后,可以使用 configtest.php 页面帮助检查设置是否正确:


http://your_server_ip/mail/src/configtest.php
如果没有错误的话,现在就可以登录 WebMail 了: http://your_server_ip/mail/

Translations

刚才已经安装和配置好了 SquirrelMail,但是界面还只是英文的,需要安装 Translations 以支持其它语言的界面显示。

SquirrelMail 下载页面 下载需要的 translation。这里使用 all_locales-1.4.13-20071220.tar.gz,包含最多种语言的翻译,你也可以只下载单个语言的翻译包。

下载后将它解压,然后将解压出来的目录和文件复制到对应的目录即可:

# tar zxf all_locales-1.4.13-20071220.tar.gz

解压后在当前目录有一个 'install' 脚本,它会复制所有需要的文件:

# sh install
Please enter path to your squirrelmail installation:

在提示符下输入 SquirrelMail 的安装地址:

/var/www/htdocs/mail/

到此,translations 的安装就完成了。再通过 SquirrelMail 的配置工具 'conf.pl' 来设置默认语言和默认的字符集:

# /var/www/htdocs/mail/config/conf.pl

选择 'Languages' 一项,再设置以下两个参数:

  • Default Language(简体中文使用 'zh_CN',繁体中文用 'zh_TW')

  • Default Charset(简体中文用 'gb2312',繁体中文用 'big5')

TIP: Default Charset

SquirrelMail 里的 'zh_CN' 默认使用 'gb2312' 字符集,而 phpLDAPadmin 里所有属性的值都是用 'utf-8' 编码保存的,所以如果需要使用 LDAP 全局地址簿,则需要将 SquirrelMail 的 translation 文件的编码给转换成 'utf-8' 编码,否则看到的 LDAP 属性的值都将是乱码。
这里以 'zh_CN' 为例,介绍如何使用 'iconv' 工具来转换字符集。
# cd /var/www/htdocs/mail/locale/zh_CN/LC_MESSAGES/
# cp squirrelmail.po squirrelmail.po.bak
# iconv -f gb2312 -t utf-8 squirrelmail.po.bak >squirrelmail.po
再编辑 /var/www/htdocs/mail/locale/zh_CN/setup.php 文件,将文件里的 'gb2312' 改为 'utf-8':
$languages['zh_CN']['CHARSET']='utf-8';
$languages
['zh_CN']['LOCALE']  = array('zh_CN.UTF8','zh_CN');
再编辑 /var/www/htdocs/mail/functions/i18n.php 文件,将文件里的 'gb2312' 改为 'utf-8':
$languages['zh_CN']['CHARSET']='utf-8';
这样就可以了。
别忘了用 'conf.pl' 配置工具在 'Languages' 菜单里将一下参数改一下:
  • Default Charset (改为 'utf-8')

Plugins

SquirrelMail 有丰富的 Plugins,可以在 All Plugins 页面找到所有的 Plugins。

change_ldappass

change_ldappass 是提供给用户修改存储在 LDAP 里的邮箱密码的插件。

  • 'change_ldappass' 插件的主页下载最新版本,这里以 2.2-1.4.0 版本为例。

  • 解压缩,并复制到正确的位置:

  • # tar zxf change_ldappass-2.2-1.4.0.tar.gz
    # cp -rf change_ldappass /var/www/htdocs/mail/plugins/

    # chown -R www:www /var/www/htdocs/mail/plugins/change_ldappass
    # chmod -R 755 /var/www/htdocs/mail/plugins/change_ldappass
  • 启用插件:

  • # /var/www/htdocs/mail/config/conf.pl

输入 'Plugins' 菜单项前的数字,然后可以看到所有已经安装的插件。输入 'change_ldappass' 前的数字启用它。再输入 'S' 保存配置,输入 'Q' 退出配置工具。

  • 配置 change_ldappass:

将配置文件模板复制一份,再基于它进行修改:

# cd /var/www/htdocs/mail/plugins/change_ldappass/
# cp config_sample.php config.php

在 config.php 文件中需要修改以下内容:

$ldap_server ='127.0.0.1';
$ldap_protocol_version
=3;
$ldap_password_field
='userPassword';
$ldap_user_field
='mail';
$ldap_base_dn
='o=domains,dc=openbsdonly,dc=org';
$ldap_filter
='(&(objectClass=qmailUser)(accountStatus=active))';
$query_dn
='cn=vmail,dc=openbsdonly,dc=org';
$query_pw
='vmailpasswd';

修改完成之后,用户就可以登录到 SquirrelMail 里,通过菜单 'Options --> Change Password' 来修改自己的邮箱密码了。

Compatibility

由于以下几个插件需要 Compatibility 插件的支持,所以我们需要先安装 Compatibility 插件:

  • Check Quota

这是一个用来保证其它一些插件可以 backward (and forward) compatible 的插件。插件的主页 介绍如下:

This plugin allows any other plugin access to the functions and special variables needed to make it backward (and forward) compatible with most versions of SM in wide use. This eliminates the need for duplication of certain functions throughout many plugins. It also provides functionality that helps check that plugins have been installed and set up correctly.

它的安装非常简单,只需要下载后解压到 SquirrelMail 的 'plugins/' 目录,再用 SquirrelMail 提供的 'conf.pl' 配置工具启用它即可。

# tar zxf compatibility-2.0.10-1.0.tar.gz
# mv compatibility /var/www/htdocs/mail/plugins/

# chown -R www:www /var/www/htdocs/mail/plugins/compatibility/
# chmod -R 755 /var/www/htdocs/mail/plugins/compatibility/

别忘了启用它:

# /var/www/htdocs/mail/config/conf.pl

Check Quota

Check Quota 插件用于检查和显示用户的邮箱容量使用量。支持的 Quota 类型有:

  • UNIX (filesystem)

  • IMAP-based

  • cPanel quotas

在这里我们使用的是 IMAP-based,配置非常的简单。

下载最新版本的源码,然后解压并配置。这里以 2.2-1.4.0 版本为例。

# tar zxf check_quota-2.2-1.4.0.tar.gz
# mv check_quota /var/www/htdocs/mail/plugins/

# chown -R www:www /var/www/htdocs/mail/plugins/check_quota/
# chmod -R 755 /var/www/htdocs/mail/plugins/check_quota/

# cd /var/www/htdocs/mail/plugins/check_quota/
# cp config.sample.php config.php

编辑配置文件 /var/www/htdocs/mail/plugins/check_quota/config.php,在第 28 行,将 quota_type 的值改为 '1' 即可。

$settings['quota_type']=1;

使用 SquirrelMail 的 'conf.pl' 工具启用这个插件,然后重新登录 SquirrelMail,即可在左上角看到 "Quota Usage" 的信息。

TIP:

如果用户邮箱为空,默认是不显示 "Quota Usage" 的。


Select Language

select_language 在用户的登录的时候提供一个下拉菜单,用户可以在此选择登录 SquirrelMail 后使用的界面语言。

select_language 的安装非常简单,只需要解压后复制到正确的目录,再启用它即可。这里以 1.1-1.4.0 版本为例。

# tar zxf select_language-1.1-1.4.0.tar.gz
# mv select_language /var/www/htdocs/mail/plugins/

# chown -R www:www /var/www/htdocs/mail/plugins/select_language/
# chmod -R 755 /var/www/htdocs/mail/plugins/select_language/

使用 SquirrelMail 的配置工具 'conf.pl' 启用它。

原文:http://code.google.com/p/puffymail/wiki/SquirrelMail_zh

分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com