sendmail工具调用postdrop将邮件放入maildrop目录
pickup监视maildrop目录,如有新邮件则读取邮件,然后交给cleanup程序(cleanup程序主要负责就是补足遗漏的标头字段,规范发件人邮件格式(主要依据main.f中的配置canonical_maps = hash:/etc/postfix/canonical,找到/etc/postfix/canonical,并根据这个文件来规范格式);地址处理部分由trivial-rewrite进程负责)
cleanup程序处理后将邮件放入incoming邮件队列
queue manager会监视incoming队列的变化,有新邮件来时,则发送到MDA
邮件本身的处理工作主要是由队列管理器(queue manager)负责。每一个能收到邮件的postfix组件,都有一个共同的目的地――队列管理器
进入邮件的第一个关卡是cleanup程序,只有经过清理的邮件才有资格进入队列。然后cleanup进程通知queue manager去处理新邮件。queue manager会使用trivial-rewrite进程来决定路由信息,这些信息包括传输方法、下一站以及收件人地址。
1、安装postfix
yum remove sendmail
yum install postfix
1.1、修改postfix配置
vim /etc/postfix/main.cf,在文件最后加上如下配置
myhostname = m1.wepu.org #本机名
mydomain = m1.wepu.org #本机域名
inet_interfaces = all #监听来自所有网络端口
#配置postfix转发认证,添加如下配置
(以下内容来自/usr/share/doc/postfix-2.6.6/README-Postfix-SASL-RedHat.txt文件,)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
service postfix restart
2.安装sasl验证
yum search cyrus-sasl
确保安装以下的包
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-lib-2.1.23-13.el6_3.1.i686
cyrus-sasl-2.1.23-13.el6_3.1.x86_64
重启saslauthd服务
service saslauthd restart
3、安装dovecot
yum install -y dovecot
vim /etc/dovecot/conf.d/10-ssl.conf
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem #屏蔽
#ssl_key = </etc/pki/dovecot/private/dovecot.pem #屏蔽
#并在文件最后加上
ssl = no
disable_plaintext_auth = no
auth_mechanisms = plain login
mail_location = mbox:~/mail:INBOX=/var/mail/%u #设置收件位置
vim /etc/dovecot/dovecot.conf 在文件最后加上如下配置
protocols = imap pop3 #启动imap pop3服务
#listen = *, ::
改为
listen = *
4、安装roundcubemail(webmail)
下载roundcubemail
wget http://125.39.66.162/files/716400000079902A/jaist.dl.sourceforge.net/project/roundcubemail/roundcubemail/1.0.4/roundcubemail-1.0.4.tar.gz
tar zxvf roundcubemail-1.0.4.tar.gz
mv roundcubemail-1.0.4 /var/www/html/mail
chown apache:apache -R /var/www/html/mail
cd /var/www/html/mail/config
cp config.inc.php.sample config.inc.php
编辑配置文件
vim config.inc.php
$config['db_dsnw'] = 'mysql://root:@localhost/roundcubemail';
$config['default_host'] = 'm.wepu.org';
创建数据库
mysql
> CREATE DATABASE roundcubemail ;
> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';
执行脚本
mysql roundcubemail < SQL/mysql.initial.sql
5、安装squirrelmail (webmail)
yum install -y httpd php php-mbstring squirrelmail
vim /etc/httpd/conf.d/squirrelmail.conf
#<Directory /usr/share/squirrelmail> #屏蔽
# RewriteEngine on #屏蔽
# RewriteCond %{HTTPS} !=on #屏蔽
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} #屏蔽
#</Directory>
vim /usr/share/squirrelmail/config/config.php
$squirrelmail_default_language = 'zh_CN'; #修改语言
$domain = 'm1.wepu.org'; #修改域名
$imapServerAddress = 'm1.wepu.org'; #修改imap服务器地址
重启httpd服务器
service httpt restart
登录WebMail:http://IP/webmail/
新建邮件用户
useradd admin
passwd admin
mkdir -p /home/admin/mail/.imap/INBOX # 创建用户的本地邮箱
chown admin:admin -R /home/admin/
true > /var/spool/mail/admin #清空以下邮箱,否则可能出现ERR Mailbox isn't a valid mbox file错误
用Foxmail登录
其他配置
隐藏主机名
发邮件时发件人自动加上了localhost,变成了test@localhost.m2.wepu.org
masquerade_domains = m2.wepu.org
设置别名,群邮件
vim /etc/aliases #增加一条记录
fangqiang: fangqiang@wepu.org,lowping@163.com
postalias /etc/aliases #使记录生效
常用命令
postconf 查看postfix所有参数
-----------------------------------------------------------------------------
telnet登录并发送邮件
telnet IP port
helo m1.wepu.org
mail from:fang@m1.wepu.org
rcpt to:fang@163.com
data
------message----- #邮件正文
. #这个点非常重要,它标识着邮件内容结束并发送