仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 611|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇CentOS办事器上搭建企业电子邮件体系

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:17:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!情况先容:
软件包版本
--------------------------------------
CentOS6.5X64
postfixadmin-2.91.tar.gz
postfix-2.6.6-6.el6_5.i686(yum)
postfix-2.11.1.tar.gz(Traball)
dovecot-2.0.9-7.el6_5.1.i686
--------------------------------------
域名及主机名
--------------------------------------
Domain:vqiu.cn
Hostname:mail.vqiu.cn
--------------------------------------
数据库信息
--------------------------------------
Mysql(postfixadmin)
[quote]DBNAME===>postfixadmin
user===>postfix
password===>postfixadmin
--------------------------------------


[/quote]1、情况安排准备
1、域名及主机名设置
[quote]略……
2、设置新yum源(网易)
[root@mail~]#yum-yinstallwget
[root@mail~]#cd/etc/yum.repos.d/
[root@mailyum.repos.d]#mkdirbackup
[root@mailyum.repos.d]#mvCentOS-*backup/
[root@mailyum.repos.d]#wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo
//此步调可选,目标为从此yum装置amavisd-new、clamav等
[root@mail~]#rpm-ivhhttp://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
//清空yum缓存及更新体系
[root@mail~]#yumcleanall;yumupdate-y

3、LAMP情况
[root@mail~]#yum-yinstallhttpdmysqlmysql-develmysql-serverphpphp-pecl-Fileinfophp-mcryptphp-develphp-mysqlphp-commonphp-mbstringphp-gdphp-imapphp-ldapphp-odbcphp-pearphp-xmlphp-xmlrpcpcrepcre-devel
//设置apache,并让apache撑持php
[root@mail~]#vi/etc/httpd/conf/httpd.conf
AddTypeapplication/x-httpd-php.php#增加对php步伐的撑持
PHPIniDir"/etc/php.ini"#指定php.ini设置文件路径
DirectoryIndexindex.phpindex.html#指定首页文件范例
#作废ServerName前的正文,不然启动httpd时提醒276行

4、设置mysql,为postfixadmin筹办好数据库及认证用户
[root@mail~]#mysql-uroot-p
mysql>createdatabasepostfixcharactersetutf8;
mysql>grantallprivilegesonpostfix.*topostfix@localhostidentifiedbypostfixadmin;
mysql>flushprivileges;
mysql>exit

5、增加邮件假造用户vmail
[root@mail~]#useradd-u2000-d/var/vmail-c"VirtualMailuser"-s/sbin/nologinvmail
[/quote]

2、设置postfix
[root@mail~]#vi/etc/postfix/main.cf

#################Mainconfigure####################
hostname=mail.vqiu.cn
mydomain=vqiu.cn
myorigin=$mydomain
inet_inte***ces=all
#注重这里,不克不及设置成与hostname与mydomain分歧,否则收不到邮件
mydestination=localhost
mynetworks=127.0.0.0/8
#不合错误client举行反向域名剖析
disable_dns_lookups=yes
#同意对一个方针域名发送的邮件并发数为20个
default_destination_concurrency_limit=20
#邮件的并发历程限定(依据办事器的功能界说)
default_process_limit=50
#只监听ipv4
net_inte***ces=ipv4

##################Virtualmailconfigure#######################
virtual_mailbox_domains=proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_maps=proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps=proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_base=/var/vmail
#注重uid与gid与之前的创建的vmail账号是分歧的,能够用#idvmail查询
virtual_uid_maps=static:2000
virtual_gid_maps=static:2000
virtual_transport=dovecot
dovecot_destination_recipient_limit=1
proxy_read_maps=$local_recipient_maps$mydestination$virtual_alias_maps$virtual_alias_domains$virtual_mailbox_maps$virtual_mailbox_domains$relay_recipient_maps$relay_domains$canonical_maps$sender_canonical_maps$recipient_canonical_maps$relocated_maps$transport_maps$mynetworks$virtual_mailbox_limit_maps

################SASLSUPPORTFORCLIENTS#######################
smtpd_sasl_auth_enable=yes
smtpd_sasl_type=dovecot
smtpd_sasl_security_options=noanonymous
#以下的两个选项能够任选一个,不外必需要与dovecot分歧
#smtpd_sasl_path=/var/run/dovecot/auth-client
smtpd_sasl_path=private/auth
broken_sasl_auth_clients=yes
smtpd_recipient_restrictions=permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unauth_destination

##################MailQuotaconfigure#######################
#mailtransportmaxsize:20M
message_size_limit=20480000
#假造邮件用户利用的最年夜容量,需在postfixadmin中启用quota($CONF[used_quotas]=YES;)才失效。
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

#Queuelifetimecontrol
maximal_queue_lifetime=1d
bounce_queue_lifetime=1d
[root@mail~]#vi/etc/postfix/master.cf
#在开端到场LDA
dovecotunix-nn--pipe
flags=DRhuuser=vmail:vmailargv=/usr/libexec/dovecot/dovecot-lda-f${sender}-d${recipient
[root@mail~]#vi/etc/postfix/mysql_virtual_domains_maps.cf
user=postfix
password=postfixadmin
hosts=localhost
dbname=postfix
query=SELECTdomainFROMdomainWHEREdomain=%sANDactive=1
#optionalquerytousewhenrelayingforbackupMX
#query=SELECTdomainFROMdomainWHEREdomain=%sANDbackupmx=0ANDactive=1

[root@mail~]#vi/etc/postfix/mysql_virtual_alias_maps.cf
user=postfix
password=postfixadmin
hosts=localhost
dbname=postfix
query=SELECTgotoFROMaliasWHEREaddress=%sANDactive=1

[root@mail~]#vi/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user=postfix
password=postfixadmin
hosts=localhost
dbname=postfix
query=SELECTquotaFROMmailboxWHEREusername=%sANDactive=1

[root@mail~]#vi/etc/postfix/master.cf
user=postfix
password=postfixadmin
hosts=localhost
dbname=postfix
query=SELECTCONCAT(domain,/,maildir)FROMmailboxWHEREusername=%sANDactive=1
3、设置postfixadmin
[root@mail~]#wgethttp://jaist.dl.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.91/postfixadmin-2.91.tar.gz
[root@mail~]#tarzxvfpostfixadmin-2.91.tar.gz
[root@mail~]#mvpostfixadmin-2.91postfixadmin
[root@mail~]#mvpostfixadmin/var/www/html/
[root@mailpostfixadmin]#cpconfig.inc.phpconfig.inc.php.bak
[root@mailpostfixadmin]#viconfig.inc.php
$CONF[configured]=true;
$CONF[database_type]=mysql;
$CONF[database_host]=localhost;
$CONF[database_user]=postfix;
$CONF[database_password]=postfixadmin;
$CONF[database_name]=postfix;
#界说doveadm的地位,能够用#whereisdoveadm查询doveadm的地位
$CONF[dovecotpw]="/usr/bin/doveadmpw";
#界说***邮箱
$CONF[admin_email]=postmaster@vqiu.cn;
#mysql暗码加密范例
$CONF[encrypt]=dovecot:CRAM-MD5;
#利用空间配额
$CONF[used_quotas]=YES;
#暗码战略
$CONF[password_validation]=array(
保留,经由过程web会见:http://yourip/postfixadmin/setup.php

将天生的函数增加到config.inc.php文件开端中,增加个***账号:好比postmaster@vqiu.cn(增加完成后倡议将setup.php这个文件举行改名,大概间接删除)
在postfixadmin增加vqiu.cn域,和两个测试用户zhang3、li4.




4、设置dovecot
装置
[root@mail~]#yum-yinstalldovecotdovecot-develdovecot-mysql
#次要设置
[root@vqiu~]#dovecot-n
#2.0.9:/etc/dovecot/dovecot.conf
#OS:Linux2.6.32-431.20.3.el6.x86_64x86_64CentOSrelease6.5(Final)ext4
auth_mechanisms=plainlogincram-md5
dict{
quota=mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth=no
listen=*
mail_location=maildir:/var/vmail/%d/%n
mbox_write_locks=fcntl
passdb{
args=/etc/dovecot/dovecot-sql.conf.ext
driver=sql
}
plugin{
quota=dict:Userquota::proxy::quota
quota_rule=*:storage=1G
}
postmaster_address=postmaster@vqiu.cn
serviceauth{
unix_listener/var/spool/postfix/private/auth{
group=postfix
mode=0666
user=postfix
}
unix_listenerauth-client{
group=postfix
mode=0600
user=postfix
}
unix_listenerauth-userdb{
group=vmail
mode=0600
user=vmail
}
}
servicedict{
unix_listenerdict{
group=vmail
mode=0600
user=vmail
}
}
ssl_cert=</etc/pki/dovecot/certs/dovecot.pem
ssl_key=</etc/pki/dovecot/private/dovecot.pem
userdb{
args=/etc/dovecot/dovecot-sql.conf.ext
driver=sql
}
protocollda{
mail_plugins=quota
}
protocolpop3{
mail_plugins=quota
pop3_client_workarounds=outlook-no-nulsoe-ns-eoh
pop3_uidl_format=%08Xu%08Xv
}
[root@mail~]#vi/etc/dovecot/dovecot-dict-sql.conf.ext
connect=host=localhostdbname=postfixuser=postfixpassword=postfixadmin
map{
pattern=priv/quota/storage
table=quota2
username_field=username
value_field=bytes
}
map{
pattern=priv/quota/messages
table=quota2
username_field=username
value_field=messages
}
[root@mail~]#vi/etc/dovecot/dovecot-sql.conf.ext
driver=mysql
connect=host=localhostdbname=postfixuser=postfixpassword=postfixadmin
#与postfixadmin中的要分歧,不然呈现暗码不婚配的征象
default_pass_scheme=CRAM-MD5
user_query=SELECTCONCAT(/var/vmail/,maildir)AShome,2000ASuid,2000ASgid,CONCAT(*:bytes=,quota)asquota_ruleFROMmailboxWHEREusername=%uANDactive=1
password_query=SELECTusernameASuser,password,CONCAT(/var/vmail/,maildir)ASuserdb_home,2000ASuserdb_uid,2000ASuserdb_gid,CONCAT(*:bytes=,quota)asuserdb_quota_ruleFROMmailboxWHEREusername=%uANDactive=1
5、客户端测试



[外部互发,注重message_limit_size哦]




[发送大公网]

6、罕见成绩

Q:邮件发送一般,没法吸收邮件

A:这个成绩我也碰到过最多的,总结以下:


  • main.cf中的mydetination参数不克不及与myorigin不异;
  • virtual_tranport=dovecot,网上有些教程是virtual;
  • vmail的GID与UID为2000
  • /var/vmail权限成绩,日记里会提醒

Q:传输附件失利
A:没有界说最年夜邮件传送巨细,postfix默许的传送巨细查询:
[root@mail~]#postconf|grepmessage_size_limit
message_size_limit=10240000#默许为10M
#编纂main.cf界说符合邮件传输的巨细

#查询数据库中的数据
[root@mail~]#postmap-qvqiu.cnmysql:/etc/postfix/mysql_virtual_domains_maps.cf
vqiu.cn
[root@mail~]#postmap-qzhang3@vqiu.cnmysql:/etc/postfix/mysql_virtual_postfixbox_maps.cf
vqiu.cn/vqiu.cn/zhang3/


附:postfix-2.11.1.tar.gztarball装置
[root@mailsrc]#tarzxvfpostfix-2.11.1.tar.gz
[root@mailsrc]#cdpostfix-2.11.1
#注重mysql路径
[root@mailpostfix-2.11.1]#makemakefilesCCARGS=-DHAS_MYSQL-I/usr/include/mysql-DUSE_SASL_AUTH-DDEF_SERVER_SASL_TYPE="dovecot"AUXLIBS=-L/usr/lib/mysql/-lmysqlclient-lz-lm-lssl-lcrypto;make;makeinstall

dovecot-2.2.13.tar.gztarball装置
[root@mailsrc]#./configure--prefix=/usr/local/dovecot--sysconfdir=/etc--localstatedir=/var--with-sql--with-mysql--with-zlib--with-sslLDFLAGS=-L/usr/lib/mysql/;make;makeinstall
#可不实行,界说postfixadmin的doveadm路径便可
[root@mail~]#ln-sv/usr/local/dovecot/bin/doveadm/usr/bin/doveadm(postfixadmin)
#可不实行,界说postfix中master.cf设置文件中LDA路径便可
[root@mail~]#ln-s/usr/local/dovecot/libexec/dovecot//usr/libexec/



Bug:因为Mairbox没有设置对应的相干目次(好比:.Sent[发件箱].Trafts[草稿箱].Sapms[渣滓邮件]等),客户端默许利用IMAP协定来吸收邮件时,只存在一个收件箱及草稿箱,别的的目次必要手动创建(临时没有好的思绪),写了个复杂得不克不及再复杂的SHELL剧本。

#!/bin/bash
foriin.Drafts.Sent.Trash.Tempates.Spams;do
mkdir/var/vmail/$1/$2/$i-pv;
done
chownvmail:vmail/var/vmail/$1-R;

比方:给zhang3创建相干的IMAP目次
shell>shshell_scriptvqiu.cnzhang3



如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
透明 该用户已被删除
沙发
发表于 2015-1-15 17:12:07 | 只看该作者

带来一篇CentOS办事器上搭建企业电子邮件体系

LZ是天才,坚定完毕
不帅 该用户已被删除
板凳
发表于 2015-1-25 20:53:35 | 只看该作者
选择交流平台,如QQ群,网站论坛等。
爱飞 该用户已被删除
地板
发表于 2015-2-4 13:08:03 | 只看该作者
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
深爱那片海 该用户已被删除
5#
发表于 2015-2-9 23:05:20 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
变相怪杰 该用户已被删除
6#
发表于 2015-2-28 08:32:26 | 只看该作者
对我们学习操作系统有很大的帮助,加深我们对OS的理解。?
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-10 03:25:50 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
透明 该用户已被删除
8#
发表于 2015-3-17 09:00:20 | 只看该作者
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-24 06:49:16 | 只看该作者
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表