1、CentOS下Extmail的搭建关于Error: xz compression not available2015-05-30 23:562067人阅读评论(0)举报找到原因是安装软件时错误安装了CENTOS 7版本的软件导致yum不可用。附上原文:Your fix removes the repository entirely. The correct fix is to remove the cached files for epel under /var/cache/yum/epel and to uninstall the EPEL *7* version of the rpm wh
2、ich is designed to install on CentOS/RHEL7 not on CentOS 6.解决方法:plainview plaincopyprint?1. gedit/root/install.log域名及主机名-Domain:Hostname:-数据库信息-Mysql(postfixadmin)DBNAME = postfixadminuser = postfixpassword = postfixadmin-一、环境部署预备1、域名及主机名设置略2、配置新yum 源(网易)rootmail #yum -y install wgetrootmail #cd /et
3、c/yum.repos.d/rootmail yum.repos.d#mkdir backuprootmail yum.repos.d#mv CentOS-* backup/rootmail yum.repos.d#wget /此步骤可选,目的为今后yum安装amavisd-new、clamav 等rootmail #rpm -ivh http:/dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm/清空yum缓存及更新系统rootmail #yum clean all; yum update -y3、LAMP 环境r
4、ootmail #yum -y install httpd mysql mysql-devel mysql-server php php-pecl-Fileinfo php-mcrypt php-devel php-mysql php-common php-mbstring php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc pcre pcre-devel/配置apache,并让apache支持phprootmail #vi /etc/httpd/conf/httpd.confAddType application/x-h
5、ttpd-php .php #添加对php程序的支持PHPIniDir /etc/php.ini #指定php.ini配置文件路径DirectoryIndex index.php index.html#指定首页文件类型#取消ServerName前的注释,否则启动httpd 时提示276行4、配置mysql,为postfixadmin 准备好数据库及认证用户rootmail #service mysqld start q可断开连接rootmail #chkconfig mysqld onrootmail #mysql -uroot -pmysql create database postfix
6、character set utf8;mysql grant all privileges on postfix.* to postfixlocalhost identified by postfixadmin;mysql flush privileges;mysql exit5、添加邮件虚拟用户 vmailrootmail #useradd -u2000-d /var/vmail -c Virtual Mail user -s /sbin/nologin vmail二、配置postfixrootmail #vi /etc/postfix/main.cf# Main configure #ho
7、stname = mydomain = myorigin = $mydomaininet_interfaces = all#注意这里,不能设置成与hostname与mydomain一致,不然收不到邮件mydestination = localhostmynetworks = 127.0.0.0/8#不对client进行反向域名解析disable_dns_lookups = yes#允许对一个目标域名发送的邮件并发数为20个default_destination_concurrency_limit = 20#邮件的并发进程限制(根据服务器的性能定义)default_process_limit =
8、 50#只监听ipv4net_interfaces = ipv4# Virtual mail configure #virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cfvirtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cfvirtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cfvirtual_mail
9、box_base = /var/vmail#注意uid 与 gid 与之前的建立的vmail账号是一致的,可以用# id vmail查询virtual_uid_maps = static:2000virtual_gid_maps = static:2000virtual_transport = dovecotdovecot_destination_recipient_limit = 1proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual
10、_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# SASL SUPPORT FOR CLIENTS #smtpd_sasl_auth_enable = yessmtpd_sasl_type = dovecotsmtpd_s
11、asl_security_options = noanonymous#以下的两个选项可以任选一个,不过必须要与dovecot 一致#smtpd_sasl_path = /var/run/dovecot/auth-clientsmtpd_sasl_path = private/authbroken_sasl_auth_clients = yessmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname,
12、reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination# Mail Quota configure #mail transport max size:20Mmessage_size_limit = 20480000# 虚拟邮件用户使用的最大容量,需在postfixadmin 中启用quota($CONFused_quota
13、s = YES;)才生效。virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf# Queue lifetime controlmaximal_queue_lifetime = 1dbounce_queue_lifetime = 1drootmail #vi /etc/postfix/master.cf#在末尾加入LDAdovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/d
14、ovecot-lda -f $sender -d $recipientrootmail #vi /etc/postfix/mysql_virtual_domains_maps.cfuser = postfixpassword = postfixadminhosts = localhostdbname = postfixquery = SELECT domain FROM domain WHERE domain=%s AND active = 1#optional query to use when relaying for backup MX#query = SELECT domain FRO
15、M domain WHERE domain=%s AND backupmx = 0 AND active = 1rootmail #vi /etc/postfix/mysql_virtual_alias_maps.cfuser = postfixpassword = postfixadminhosts = localhostdbname = postfixquery = SELECT goto FROM alias WHERE address=%s AND active = 1rootmail #vi /etc/postfix/mysql_virtual_mailbox_limit_maps.
16、cfuser = postfixpassword = postfixadminhosts = localhostdbname = postfixquery = SELECT quota FROM mailbox WHERE username=%s AND active = 1rootmail #vi /etc/postfix/master.cfuser = postfixpassword = postfixadminhosts = localhostdbname = postfixquery = SELECT CONCAT(domain,/,maildir) FROM mailbox WHER
17、E username=%s AND active = 1三、配置postfixadminrootmail #wget rootmail #tar zxvf postfixadmin-2.91.tar.gzrootmail #mv postfixadmin-2.91 postfixadminrootmail #mv postfixadmin /var/www/html/rootmail postfixadmin#cp config.inc.php config.inc.php.bakrootmail postfixadmin#vi config.inc.php$CONFconfigured =
18、true;$CONFdatabase_type = mysql;$CONFdatabase_host = localhost;$CONFdatabase_user = postfix;$CONFdatabase_password = postfixadmin;$CONFdatabase_name = postfix;# 定义doveadm的位置,可以用#whereis doveadm查询doveadm 的位置$CONFdovecotpw = /usr/bin/doveadm pw;# 定义管理员邮箱$CONFadmin_email = postmaster;# mysql密码加密类型$CONF
19、encrypt = dovecot:CRAM-MD5;# 使用空间配额$CONFused_quotas = YES;# 密码策略$CONFpassword_validation = array(保存,通过web访问:http:/yourip/postfixadmin/setup.php将生成的 函数添加到config.inc.php文件末尾中,添加个管理员账号:比如postmaster (添加完成后建议将setup.php这个文件进行更名,或者直接删除)在postfixadmin添加域,以及两个测试用户zhang3、li4.四、配置dovecot安装rootmail #yum -y insta
20、ll dovecot dovecot-devel dovecot-mysql#主要配置rootvqiu #dovecot -n# 2.0.9: /etc/dovecot/dovecot.conf# OS: Linux 2.6.32-431.20.3.el6.x86_64 x86_64 CentOS release 6.5 (Final) ext4auth_mechanisms = plain login cram-md5dict quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.extdisable_plaintext_auth = nolist
21、en = *mail_location = maildir:/var/vmail/%d/%nmbox_write_locks = fcntlpassdb args = /etc/dovecot/dovecot-sql.conf.ext driver = sqlplugin quota = dict:User quota:proxy:quota quota_rule = *:storage=1Gpostmaster_address = postmasterservice auth unix_listener /var/spool/postfix/private/auth group = post
22、fix mode = 0666 user = postfix unix_listener auth-client group = postfix mode = 0600 user = postfix unix_listener auth-userdb group = vmail mode = 0600 user = vmail service dict unix_listener dict group = vmail mode = 0600 user = vmail ssl_cert = /etc/pki/dovecot/certs/dovecot.pemssl_key = /etc/pki/
23、dovecot/private/dovecot.pemuserdb args = /etc/dovecot/dovecot-sql.conf.ext driver = sqlprotocol lda mail_plugins = quotaprotocol pop3 mail_plugins = quota pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xvrootmail #vi /etc/dovecot/dovecot-dict-sql.conf.extconnect = hos
24、t=localhost dbname=postfix user=postfix password=postfixadminmap pattern = priv/quota/storage table = quota2 username_field = username value_field = bytesmap pattern = priv/quota/messages table = quota2 username_field = username value_field = messagesrootmail #vi /etc/dovecot/dovecot-sql.conf.extdri
25、ver = mysqlconnect = host=localhost dbname=postfix user=postfix password=postfixadmin#与postfixadmin 中的要一致,否则出现密码不匹配的现象default_pass_scheme = CRAM-MD5user_query = SELECT CONCAT(/var/vmail/, maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT(*:bytes=, quota) as quota_rule FROM mailbox WHERE username =
26、%u AND active=1password_query = SELECT username AS user, password, CONCAT(/var/vmail/, maildir) AS userdb_home, 2000 AS userdb_uid, 2000 AS userdb_gid, CONCAT(*:bytes=, quota) as userdb_quota_rule FROM mailbox WHERE username = %u AND active=1五、客户端测试内部互发,注意message_limit_size哦发送至公网六、常见问题Q:邮件发送正常,无法接收邮件A:这个问题我也遇到过最多的,总结如下: main.cf 中的mydetination 参数不能与myorigin相同; virtual_tranport = dovecot ,网上有些教程是virtual; vmail 的GID与UID 为2000 /var/vmail 权限问题,日志里会提示Q:传输附件失败A:没有定义最大邮件传递大小,postfix 默认的传递大小查询:rootmail #postconf | grep message_size_limitmessage_size_limit = 10240000