仓酷云

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

[CentOS(社区)] 给大家带来Postfix 电子邮件体系搭建

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:07:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
小知识:CentOS并不包含封闭源代码软件。
设置装备摆设一个postfix邮件体系,远比我先前的想象庞杂。此次共设置装备摆设2个postfix体系,花了很多精神,其间也阅历很多费事,还好,最初都做成了!在设置装备摆设过程当中,参考了《postfix威望指南》和网上其别人写的文章,但在现实的设置装备摆设中,完整依照这些文档照样不容易顺遂完成。如今此行文表露我做这个工作的全体进程,愿望对人人的任务有所赞助。
◆运转情况
操作体系是centos5,其下载地址为http://www.centoscn.com/CentosSoft/iso/2013/0720/363.html,它是redhatas5最好的替换品(缘由:开源且收费下载);postfix应用的版本是postfix-2.2.10.tar.gz,postfix(www.postfix.org)以后的稳固版本是2.4,因为2.4不支撑SASL,所以我选了老一点的版本。其他所需的软件鄙人表列出:

称号
用处
下载地址
Apache(httpd-2.2.0)
Web方法治理邮件
www.apache.org
Php(php-5.2.3)
Php说明器,与apache一路应用
www.php.org
Mysql(mysql-5.0.41)
用数据库存储用户信息
www.mysql.com
Postfixadminpostfix-2.1.0
邮件帐号后台web治理对象
http://sourceforge.net/projects/postfixadmin/
SASLcyrus-sasl-2.1.21.tar.gz
验证办法
http://ftp.andrew.cmu.edu/pub/cyrus-mail/
Authlib(courier-authlib-0.59.3.tar.bz2)
SASL一路做验证
http://www.courier-mta.org/download.php
Postfix
邮件体系主法式
http://www.postfix.org
Courier-imap(courier-imap-4.1.3.tar.bz2)
Pop3IMAP办事
http://www.courier-mta.org/

Perl(perl-5.8.8)
说明器
http://www.cpan.org
Maildrop(maildrop-2.0.4.tar.bz2)
邮件送达署理,直不雅的讲就是把收到的邮件转发到用户的邮箱目次
http://www.courier-mta.org/
Clamavclamav-0.91.2.tar.gz
杀毒软件
http://www.clamav.org/
amavisd-newamavisd-new-2.5.2.tar.gz
扫描邮件病毒
http://www.ijs.si/software/amavisd

SpamassassinSpamAssassin3.2.3
防渣滓邮件
http://spamassassin.apache.org/
Pcrepcre-7.2.tar.bz2
装置Imap须要--Perl兼容正则表达式
http://www.pcre.org
Extmail(extmail-1.0.1.tar.gz)
webmail
http://www.extmail.org

◆预备任务
1、下载所需的软件:照下面给出的地址找到下载URL,然后用wget下载。因为办事器普通不装置xwindow如许的桌面情况,那如何晓得下载文件的url呢?用windows呢,经由过程securecrt如许的ssh对象衔接和治理长途linux办事器,如许就很轻易办到了。在现实的任务中,我习气把文件下载到/root目次,缘由是通俗用户看不见我下载的器械。
2、清算体系:不论你喜不爱好,装置体系时sendmail这个邮件办事软件曾经装置上去了,可是一山不容二虎,既然我们选定了功效壮大的postfix,那末sendmail就一边歇着吧。运转敕令rpm-e-nodepssendmail就到达这个目标了。第2个须要卸载的软件是SASL,为何要卸载它呢?由于体系自带的版本不太轻易与authlib正常合营,所以须要把它删除失落。第3个要删除的是perl.本盘算用体系自带的perl,可是在履行敕令perl-MCPAN-eshell时竟然涌现"segmentfault",招致许多功效不克不及应用,看来也只好删了重装一个。上面总结一下这个进程:
1SASL
1)列出包
rpm-qa|grepsasl
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-gssapi-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL4
cyrus-sasl-ntlm-2.1.19-5.EL4
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-sql-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
2)删除包
rpmCeCnodepscyrus-sasl-2.1.19-5.EL4cyrus-sasl-gssapi-2.1.19-5.EL4cyrus-sasl-devel-2.1.19-5.EL4//把下面查查来的全体列在这前面全卸载失落。nodeps后面是两”-“!
然落后目次/usr/lib查一下lsCal/usr/lib|grepsasl应当没有目次saslsasl2了。
2Perl
1)列出包
rpm-qa|grepperl
perl-DateManip-5.42a-3
perl-XML-Encoding-1.01-26
perl-LDAP-0.31-5
perl-XML-LibXML-Common-0.13-7
groff-perl-1.18.1.1-3
openssl-perl-0.9.7a-43.1
…………(省略若干)
perl-suidperl-5.8.5-12.1.1
2)删除包
rpmCeCnodepsperl-DateManip-5.42a-3//照下面的例子删除所以的包。因为包太多,用一个//rpm敕令前面带的参数太长,建议一个一个整理。注:用yumremoveperl删除更便利
履行完删除敕令后,再运转敕令perlCv,假如涌现“-bash:perl:commandnotfound”则注解曾经把perl清算失落了。
3、创立邮件体系运转时所需的用户和组:创立用户和组毫不仅仅是为了演习userad和groupadd这两个敕令,由于平安方面的缘由,一些软件不克不及以root用户来运转,乃至在装置过程当中,假如没无为该软件事后创立用户,装置将不克不及停止下去,是以,我们在这里先创立这些运转postfix体系所需的用户和组。对centos或redhat等刊行版而言,用敕令useradd创立用户时也就创立了一个同名的组,而别的一些linux刊行版(如debian)或unix(如solaris10),创立用户时其实不会同时创立同名的组,这须要手动履行敕令零丁创立所需的组。上面我用表格的方法列出postfix体系所须要创立的用户及组的情形:
用户名
组名
感化
备注
mysql
Mysql
数据库mysql运转用户

vmail
Vmail
Postfix虚拟邮件帐号所应用的用户及组
uid,gid:1001,1001
postfix
Postfix
Postfix主法式应用的帐号和组


Postdrop
Postfixsetgid_group
setgid_group=postdrop
amavis
Amavis
邮件扫描

clamav
Clamav
病毒扫描

这里有2个值得留意的处所,它们是vmail用户、组及postdrop组。在postfix邮件体系中,有好几个法式是以vmail来运转的(这些情形将在前面逐一解释);postdrop这个组,我看了许多人写的文档,无一破例的都有创立这个组的操作,但没有任何人解释这个组是干甚么用的,给人很突兀的感到,是以我在这里特殊把它列出来了-它的感化是setgid_group-在postfix的主设置装备摆设文件main.cf里标清楚明了的。

[root@mail~]#greppostdrop/etc/postfix/main.cf
setgid_group=postdrop

◆装置apache,mysql和php
1、apache
tarzxvfhttpd-2.2.0.tar.gz
cdhttpd-2.2.0
./configure-prefix=/usr/local/apache-enable-so//选项prefix,enanle后面是两个"-"
make
makeinstall
上述步调履行终了后,将生成目次/usr/local/apache,进入这个目次检讨一下,看相干的文件和目次能否存在?下图是一个准确装置apache后的目次构造:

履行敕令/usr/local/apache/bin/httpd-l检讨编译出去的模块有哪些。最重要的是mod_so模块。即上面最初一个mod_so.c。如许做的目标是为了以模块方法加载php.如今我们先不忙着设置装备摆设apache,比及前面再做这个任务。
2、mysql
tarzxvfmysql-5.0.41.tar.gz
cdmysql-5.0.41
./configure-prefix=/usr/local/mysql
make,makeinstall//装置完成
useraddmysql
cpsupport-files/my-medium.cnf/etc/my.cnf
cd/usr/local/mysql
/usr/local/mysql/bin/mysql_install_db--user=mysql//初始化数据库
chown-Rroot.
chown-Rmysqlvar
chgrp-Rmysql.
echo"/usr/local/mysql/lib/mysql">>/etc/ld.so.conf
ldconfig
echo"exportPATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source/etc/profile
白色字体这几行敕令假如不在此处履行的话,今后在装置courier-authlib将涌现很多费事,切记!!设置mysql路径的目标是未来须要应用mysql-config文件.

3、php
cd//进/roor目次
tarzxvfphp-5.2.3.tar.gz
cdphp-5.2.3
./configure-prefix=/usr/local/php-with-apxs2=/usr/local/apache/bin/apxs-with-mysql=/usr/local/mysql//假如不先装置mysql,这一步将不克不及停止下去
make;makeinstall
cpphp.ini-dist/usr/local/php/lib/php.ini
在设置装备摆设过程当中,除指定装置目次外,还有-with-apxs2和-with-mysql这两个选项。-with-apxs2的感化是与apache的对象apxs合营,发生模块文件到目次/usr/local/apache/modules/,同时在apache的设置装备摆设文件中写入一行"LoadModulephp5_modulemodules/libphp5.so";
[root@myestmodules]#ll
total12212
-rw-r--r--1rootroot8873Jul3014:55httpd.exp
-rwxr-xr-x1rootroot12473318Jul3109:29libphp5.so

选项-with-mysql的感化异常主要,假如不加这个,今后在应用web治理对象postfixadmin时将涌现不克不及衔接数据库的毛病。接着我们须要把php与apache整合在一路,这个进程很简略,因为在装置php时曾经完成了一部门任务,接上去只需在apache的设置装备摆设文件httpd.conf加上"AddTypeapplication/x-httpd-php.php"这么一行就好了(留意:.php后面有一个空格)。在目次/usr/local/apache/htdocs下创立一个最简略的php测试文件,其内容为:

vitest.php
<?

phpinfo();
?>

检讨一下apache设置装备摆设文件能否准确(/usr/local/apache/bin/apachectl-t),输入"SyntaxOK"后就能够启动apache办事(/usr/local/apache/bin/apachectlstart)。在其余机械的阅读器输出我们设置装备摆设的这个办事器的url,正常的话,将获得相似下图的页面:

下面几个软件的装置绝对来讲照样比拟轻易操作的,这里我满是用GNU源码定制装置,这相对2进制包的装置方法罢了,有几个利益:①软件的互相依附性较小(装置过rpm包的人对这个应当有深入的熟悉)。②跨平台。如许的装置方法实用各类unix/linux体系。③保护便利。应用了选项-prefix指定装置目次,一切的文件目次都集中在这个装置目次里,保护起来异常便利。是以,在这里激烈推举人人实用GNU源码方法装置。
◆装置和设置装备摆设SASL、Authlib
最好先装置courier-authlib。为何呢?由于前面设置装备摆设SASL验证smtp时须要authlib的socket路径。
1、装置和设置装备摆设courier-authlib
1)装置
tarjxvfcourier-authlib-0.59.3.tar.bz2
cdcourier-authlib-0.59.3
./configure--with-redhat--with-authmysql=yes--with-mailuser=vmail--with-mailgroup=vmail--with-mysql-libs=/usr/local/mysql/lib/mysql--with-mysql-includes=/usr/local/mysql/include/mysql
--prefix=/usr/local/authlib--without-stdheaderdir
make
makeinstall
makeinstall-configure
普通情形下,anthlib的装置应当是轻易完成的。装置完成后,我们先找出设置装备摆设文件中authdaemonvar的设置,这个值是干甚么用的呢?它是前面SASL验证SMTP所必需的,是以须要先把它找出来,以便前面的设置装备摆设可以或许精确无误。关于这个成绩的经验,在设置装备摆设sasl的时刻再做解释。在我的装置中,authdaemonvar的设置以下:

[root@mail~]#grep"authdaemonvar"/usr/local/authlib/etc/authlib/authdaemonrc

##NAME:authdaemonvar:2

#authdaemonvarishere,butisnotuseddirectlybyauthdaemond.Its

authdaemonvar=/usr/local/authlib/var/spool/authdaemon


(2)设置装备摆设authlib.在目次/usr/local/authlib/etc/authlib中,修正文件authdaemonrc及authmysqlrc。

vi/usr/local/authlib/etc/authlib/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
DEBUG_LOGIN=2


修正下面3项,其他的项坚持未便。这个修正前2行表现用mysql认证模块;把DEBUG_LOGIN的值有默许的“0”改成“2”的意图是运转postfix时有更多的信息输入,经由过程生成的日记以赞助排错。



vi/usr/local/authlib/etc/authlib/authmysqlrc
MYSQL_SERVERlocalhost
MYSQL_USERNAMEpostfix
MYSQL_PASSWORDpostfix

MYSQL_DATABASEpostfix

MYSQL_SOCKET/tmp/mysql.sock
MYSQL_USER_TABLEmailbox
#MYSQL_CRYPT_PWFIELDpassword
MYSQL_CLEAR_PWFIELDpassword

DEFAULT_DOMAINsery.com
MYSQL_UID_FIELD1001
MYSQL_GID_FIELD1001

MYSQL_LOGIN_FIELDusername
MYSQL_HOME_FIELD/var/mailbox/

MYSQL_NAME_FIELDname
MYSQL_MAILDIR_FIELDmaildir
MYSQL_QUOTA_FIELDconcat(quota,’S’)
MYSQL_WHERE_CLAUSEactive=1


照下面的格局修正,这是比拟轻易失足的处所,要特殊当心。我已经把MYSQL_USER_TABLEmailbox这一项的mailbox写成mailbov招致sasl验证一向没法经由过程!特殊留意MYSQL_UID_FIELDMYSQL_GID_FIELD字段的值,这里是‘1001’,也能够是其它的,但必定要与vmail用户及组相分歧(idvmail可以得出这2者的值)


2、装置和设置装备摆设SASL.
(1)装置
tarzxvfcyrus-sasl-2.1.21.tar.gz
cdcyrus-sasl-2.1.21
./configure--disable-anon-enable-plain--enable-login--enable-sql--with-mysql=/usr/local/mysql--with-mysql-includes=/usr/local/mysql/include/mysql--with-mysql-libs=/usr/local/mysql/lib/mysql--with-authdaemond
make
makeinstall
假如在编译进程(make)涌现毛病,如“client.c:64:error:staticdeclarationofglobal_callbacksfollowsnon-staticdeclarationsaslint.h:112…”,须要加一个补钉法式,然后再履行编译进程。弥补:假如应用cyrus-sasl-2.1.21这个版本,则不会涌现这个成绩.
用vi在以后地位创立补钉文件,起名为sasl.patch,其内容包含:

---cyrus-sasl-2.1.20/lib/client.c~2003-11-1111:26:06.000000000-0500
+++cyrus-sasl-2.1.20/lib/client.c2005-05-3122:34:14.000000000-0400
@@-61,7+61,7@@

staticcmech_list_t*cmechlist;/*globalvarwhichholdsthelist*/

-staticsasl_global_callbacks_tglobal_callbacks;
+sasl_global_callbacks_tglobal_callbacks;

staticint_sasl_client_active=0;



ln-s/usr/local/lib/sasl2/usr/lib/sasl2//sasl的装置目次是/usr/local/lib/sasl
echo"/usr/local/lib">>/etc/ld.so.conf//指定静态衔接库的地位
ldconfig//同享静态链接库失效
(2)设置装备摆设
创立文件/usr/local/lib/sasl2/smtpd.conf,并参加以下内容:
pwcheck_method:authdaemond

mech_list:PLAINLOGIN

log_level:3

authdaemond_path:/usr/local/authlib/var/spool/authdaemon/socket


最初一行authdaemond_paeth的设置来自anthlib的设置装备摆设文件authlibdaemonrc,万万不要把这个弄错了,我现在的smtp验证一向通不外就是因为这个缘由。经由过程检查过程也能够晓得这个路径(条件是authlib正常运转了),以下图所示:

Sasl2须要应用文件/usr/local/authlib/var/spool/authdaemon/socket,但默许情形下,其属性是744,须要把它加上履行权限,以便文件属组(主)而外的其它用户可以履行。运转敕令
chmod+x/usr/local/authlib/var/spool/authdaemon
便可,假如不如许处置,smtp验证无一破例会掉败的。那末这里所说的其它用户是甚么用户呢?答:postfix。

◆装置和设置装备摆设postfixadmin
Postfixadmin是postfix邮件体系的web治理对象,有了这个对象,治理和保护用户帐号就便利多了。假设不消对象,就须要手动修正数据库,谁情愿如许做?装置postfixadmin比拟简略,解压包postfixadmin-2.2.11.tar.gz,然后把它挪动到某个目次下,其进程以下:
cd/root

tarzxvfpostfixadmin-2.2.11.tar.gz

mvpostfixadmin-2.2.11/var/www/postfixadmin


如今postfixadmin的目次是/var/www/postfixadmin,为了可以或许让它依照我们的志愿任务,须要用敕令chown-Rvmail:vmail/var/www/postfixadmin更改属主。如许,postfixadmin的装置就算完成了。接着我们来设置装备摆设它,这个进程要庞杂一点,我在这里分几步停止。
(1)修正相干的设置装备摆设文件。Postfixadmin第一个须要修正设置装备摆设文件是config.inc.php,但现实上却没有这个文件,没关系,把config.inc.php.sample搬过去就是了(cpconfig.inc.php.sampleconfig.ini.php),再来看一下目次构造:

[root@mailserv2postfixadmin]#pwd

/var/www/postfixadmin

[root@mailserv2postfixadmin]ll

total236

drwxr-xr-x2vmailvmail4096Sep1616:06ADDITIONS

drwxr-xr-x2vmailvmail4096Sep1619:31admin

-rw-r--r--1vmailvmail1195Sep1616:06BACKUP_MX.TXT

-rw-r--r--1vmailvmail10155Sep1616:06CHANGELOG.TXT

-rw-r-----1vmailvmail4700Sep1616:14config.inc.php

-rw-r--r--1vmailvmail4694Sep1616:06config.inc.php.sample

-rw-r-----1vmailvmail3774Sep1616:06create-alias.php

-rw-r-----1vmailvmail7379Sep1619:24create-mailbox.php

-rw-r--r--1vmailvmail4910Sep1616:06DATABASE_MYSQL.TXT

-rw-r--r--1vmailvmail4955Sep1616:06DATABASE_PGSQL.TXT

-rw-r-----1vmailvmail2497Sep1619:30delete.php

-rw-r-----1vmailvmail1727Sep1616:06edit-active.php

-rw-r-----1vmailvmail3013Sep1616:06edit-alias.php

-rw-r-----1vmailvmail4026Sep1616:06edit-mailbox.php

-rw-r-----1vmailvmail25031Sep1616:06functions.inc.php

drwxr-xr-x2vmailvmail4096Sep1616:06images

-rw-r-----1vmailvmail3994Sep1616:06index.php

-rw-r--r--1vmailvmail2655Sep1616:06INSTALL.TXT

drwxr-xr-x2vmailvmail4096Sep1616:06languages

-rw-r--r--1vmailvmail1651Sep1616:06LANGUAGE.TXT

-rw-r--r--1vmailvmail5375Sep1616:06LICENSE.TXT

-rw-r-----1vmailvmail1743Sep1616:06login.php

-rw-r-----1vmailvmail494Sep1616:06logout.php

-rw-r-----1vmailvmail869Sep1616:06main.php

-rw-r--r--1vmailvmail981Sep1616:06motd-admin.txt.orig

-rw-r--r--1vmailvmail262Sep1616:06motd.txt

-rw-r--r--1vmailvmail262Sep1616:06motd-users.txt

-rw-r-----1vmailvmail4827Sep1616:06overview.php

-rw-r-----1vmailvmail2314Sep1616:06password.php

-rwxr-xr-x1vmailvmail392Sep1616:08postfix_chmod.sh

-rw-r-----1vmailvmail3233Sep1616:06search.php

-rw-r-----1vmailvmail2119Sep1616:06sendmail.php

-rw-r-----1vmailvmail5506Sep1616:06setup.php

-rw-r-----1vmailvmail4204Sep1616:06stylesheet.CSS

-rw-r--r--1vmailvmail456Sep1616:06TABLE_BACKUP_MX.TXT

-rw-r--r--1vmailvmail3737Sep1616:06TABLE_CHANGES.TXT

drwxr-xr-x2vmailvmail4096Sep1616:06templates

-rw-r--r--1vmailvmail2303Sep1616:06UPGRADE.TXT

drwxr-xr-x2vmailvmail4096Sep1616:06users

-rw-r-----1vmailvmail1949Sep1616:06variables.inc.php

-rw-r-----1vmailvmail1965Sep1616:06viewlog.php

drwxr-xr-x2vmailvmail4096Sep1616:06VIRTUAL_VACATION


在下面的目次输入中,我将要处置的文件或目次用了粗字体来标识了,先从config.ini.php着手吧。

[root@mailserv2postfixadmin]#moreconfig.inc.php


//

//PostfixAdmin

//byMischaPeters

//Copyright(c)2002-2005High5!


//

//File:config.inc.php

//

if(ereg("config.inc.php",$_SERVER[PHP_SELF]))

{

header("Location:login.php");

exit;

}


//PostfixAdminPath

//SetthelocationtoyourPostfixAdmininstallationhere.

$CONF[postfix_admin_url]=;

$CONF[postfix_admin_path]=;


//Languageconfig

//Languagefilesarelocatedin./languages.

$CONF[default_language]=cn;


//DatabaseConfig

//mysql=MySQL3.23and4.0

//mysqli=MySQL4.1

//pgsql=PostgreSQL

$CONF[database_type]=mysql;

$CONF[database_host]=localhost;

$CONF[database_user]=postfixadmin;

$CONF[database_password]=postfixadmin;

$CONF[database_name]=postfix;

$CONF[database_prefix]=;

…………………………省略若干……………………………………….

//Mailboxes

//IfyouwanttostorethemailboxesperdomainsetthistoYES.

//Example:/usr/local/virtual/domain.tld/username@domain.tld

$CONF[domain_path]=YES;

//IfyoudontwanttohavethedomaininyourmailboxsetthistoNO.

//Example:/usr/local/virtual/domain.tld/username

$CONF[domain_in_mailbox]=NO;

…………………………省略若干……………………………………….

//DefaultDomainValues

//Specifyyourdefaultvaluesbelow.QuotainMB.

$CONF[aliases]=1000;

$CONF[mailboxes]=1000;

$CONF[maxquota]=1000;

…………………………省略若干……………………………………….

//Quota

//WhenyouwanttoenforcequotaforyourmailboxuserssetthistoYES.

$CONF[quota]=NO;

//Youcaneitheruse1024000or1048576

$CONF[quota_multiplier]=1024000;

…………………………省略若干……………………………………….

?>


被修改过的内容用白色粗体标志出来了,这些值可依据现实情形作修正。下一个须要修正的文件是create-mailbox.php:
[root@mailserv2postfixadmin]#morecreate-mailbox.php


//

//PostfixAdmin

//byMischaPeters

//Copyright(c)2002-2005High5!


……………………………………省略若干…………………………………….

$tQuota=$CONF[maxquota];

system("sudo/usr/sbin/maildirmake.sh$fDomain".$_POST[fUsername]);

if($fMail=="on")

……………………………………省略若干…………………………………….

?>


白色字体那行是须要拔出的,它的地位在210行,不要把地位放错了,由于文件中有2行是"$tQuota=$CONF[maxquota];"必定要把它放在第209行的谁人"$tQuota=$CONF[maxquota];"的前面才会有感化。在这里,很有需要说明一下拔出这行的感化--在php剧本中履行体系的shell剧本--直接的效果就是创立用户的邮箱目次,这与履行在linux下履行敕令行sudo/usr/sbin/maildirmake.shsery.comsey相当。接上去我们修正文件delete.php:
[root@mailserv2postfixadmin]#videlete.php

……………………………………….省略许多………………………………


require("./variables.inc.php");

require("./config.inc.php");

require("./functions.inc.php");

include("./languages/".check_language().".lang");

$SESSID_USERNAME=check_session();

……………………………………….省略许多………………………………$result=db_query("SELECT*FROMmailboxWHEREusername=$fDeleteANDdomain=$fDomain");

$userarray=explode("@",$fDelete);

$user=$userarray[0];

$domain=$userarray[1];

system("sudo/usr/sbin/maildirdel.sh$domain$user");

……………………………………….省略许多………………………………

?>


白色字体标示的那4行是须要拔出的,地位也是相当主要的,不克不及弄错。到了这一步,照样没有完成,还须要进目次admin里修正2个同名文件admin/create-mailbox.php和admin/delete.php,修正的办法是一样的,只是拔出地位的行号分歧(如admin/create-mail在200行的地位拔出),见上面的截图:

这里有一个困惑:为何在分歧的目次下有雷同的文件呢?这是出于平安方面的缘由。Postfixadmin把治理员分红2种:超等邮件体系治理员和普通邮件体系治理员,在admin目次里的是超等治理员的目次,而通俗的邮件体系治理员在/var/www/postfixadmin这个目次。在上述过程当中,我们应用了2个shell剧本/usr/sbin/maildirdel.sh及/usr/sbin/maildirmake.sh,这些剧本的内容和感化将在前面装置设置装备摆设maildrop时一并给出。
(2)在mysql中创立postfix所需的数据库。

[root@mailserv2~]#cd/var/www/postfixadmin
[root@mailserv2~]#mysql-uroot<DATABASE_MYSQL.TXT


(3)测试postfixadmin。先修正apache的设置装备摆设文件/usr/local/apache/conf/httpd.conf,参加以下内容:
Alias/postfixadmin/var/www/postfixadmin

<Directory/var/www/postfixadmin>

OptionsIndexesFollowSymLinks

AllowOverrideNone

Orderallow,deny

Allowfromall

</Directory>


<Directory"/var/www/postfixadmin/admin">

AuthTypeBasic

OptionsNone

AllowOverrideNone

Orderallow,deny

Allowfromall

AuthName"sery.mailAccess"

AuthUserFile/usr/local/apache/conf/htpasswd

Requirevalid-user

</Directory>




保留后重起apache办事(/usr/local/apache/bin/apachectlrestart),然后在其余机械的阅读器输出邮件办事器的url如:http://mail.sery.com/postfixadmin

点击链接setup,假如涌现的都是ok,则注解postfixadmin设置装备摆设准确。


默许情形下,很有能够没有装置pcre(PerlCompatibleRegularExpressions)这个软件包。这个包是必需的,假如没有这个包,装置courier-maildrop将不克不及正常停止,关于pcre的装置,我们把它放到maildrop装置这一部门。
Postfix装置和设置装备摆设
这是邮件体系的焦点部门,是以装置和设置装备摆设是比拟庞杂的,特殊是做设置装备摆设时要非分特别当心,有时还须要重复修正,重复测试。
(1)装置postfix.
[root@mailserv2~]#cd
[root@mailserv2~]#tarzxvfpostfix-2.2.11.tar.gz
[root@mailserv2~]#cdpostfix-2.2.11
[root@mailserv2postfix-2.2.11]#make-fMakefile.initmakefilesCCARGS=-DHAS_MYSQL-I/usr/local/mysql/include/mysql-DUSE_SASL_AUTH-I/usr/local/include/saslAUXLIBS=-L/usr/local/mysql/lib/mysql-lmysqlclient-lz-lm-L/usr/local/lib-lsasl2
假如没成心外,make这一步很快就履行完了,接上去就是装置,应用的敕令是:
[root@mailserv2postfix-2.2.11]#makeinstall
法式先主动履行一阵子,然后会进入交互状况,期待用户的输出,普通情形下,一路回车便可完成一切的装置。
(2)设置装备摆设postfix。Postfix有自己有2个须要修正的设置装备摆设文件/etc/postfix/main.cf和/etc/postfix/master.cf,由于我们要用mysql虚拟帐号,是以须要手动加一些设置装备摆设文件,上面挨个来做这些设置装备摆设。
①main.cf。这个文件有许多行正文,观察起来不是很便利,先用敕令[root@mailserv2postfix]#sed-n/^#/!p/etc/postfix/main.cf>/etc/postfix/main.cf.new去失落正文行并生成新文件/etc/postfix/main.cf.new,然后再把它笼罩到/etc/postfix/main.cf(cp/etc/postfix/main.cf.new/etc/postfix/main.cf)。修正后的文件以下所示:
[root@mailserv2postfix]#moremain.cf

config_directory=/etc/postfix
readme_directory=no
sample_directory=/etc/postfix
sendmail_path=/usr/sbin/sendmail
html_directory=no
setgid_group=postdrop
command_directory=/usr/小知识:Linux发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
admin 该用户已被删除
沙发
发表于 2015-1-30 23:45:38 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
小妖女 该用户已被删除
板凳
发表于 2015-2-6 17:30:31 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
莫相离 该用户已被删除
地板
发表于 2015-2-17 23:37:42 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
飘灵儿 该用户已被删除
5#
发表于 2015-3-6 00:22:45 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-12 17:25:55 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
蒙在股里 该用户已被删除
7#
发表于 2015-3-20 01:30:45 | 只看该作者
选择一些适于初学者的Linux社区。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 13:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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