歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 基於Fedora上建立功能強大的郵件服務器

基於Fedora上建立功能強大的郵件服務器

日期:2017/2/27 9:27:46   编辑:更多Linux
  一、軟件的准備  A.檢查你的系統是否已安裝了以下軟件  1.pam  2.pam-devel  3.mysql  4.mysql-servel  5.mysql-devel  6.imap-devel  7.sharutils    B.下載以下軟件  1.metamail*.i386.rpm  2.pam-mysql  3.cyrus-sasl-2.1.15  4.postfix-2.0.16  5.courier-imap    C.說明    mysql-devel在第3個盤。我忘了裝,結果pam-mysql和postfix的編譯過不了。metamail和sharutils是取驗證碼用的。    二、mysql數據庫和表的建立  A.[root@localhost root]# mysql    Welcome to the MySQL monitor. Commands end with ; or \g.  Your MySQL connection id is 3 to server version: 3.23.58    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.    mysql> use mysql  Reading table information for completion of table and column names  You can turn off this feature to get a quicker startup with -A    Database changed  mysql> INSERT INTO db (Host,Db,User,Select_priv)VALUES('localhost','postfix','postfix','Y');  Query OK, 1 row affected (0.00 sec)    mysql> CREATE DATABASE postfix;  Query OK, 1 row affected (0.00 sec)    mysql> GRANT ALL ON postfix.* TO postfix@localhost  -> IDENTIFIED BY "postfix";  Query OK, 0 rows affected (0.00 sec)    mysql> FLUSH PRIVILEGES;  Query OK, 0 rows affected (0.00 sec)    mysql> quit  Bye    B.把下列文字復制存為postfix.sql    ########potfix_sql########bigin##################  CREATE TABLE alias (  username varchar(255) NOT NULL default'',  goto text NOT NULL,  domain varchar(255) NOT NULL default'',  PRIMARY KEY (username)  ) TYPE=MyISAM;  CREATE TABLE domain (  domain varchar(255) NOT NULL default'',  description varchar(255) NOT NULL default'',  PRIMARY KEY (domain)  ) TYPE=MyISAM;    CREATE TABLE mailbox (  userid char(20) binary NOT NULL default'',  username varchar(255) NOT NULL default'',  passWord varchar(255) NOT NULL default'',  home varchar(255) NOT NULL default'',  maildir varchar(255) NOT NULL default'',  name varchar(255) NOT NULL default'',  uid smallint(5) unsigned NOT NULL default'12345',  gid smallint(5) unsigned NOT NULL default'12345',  quota varchar(255) NOT NULL default'',  domain varchar(255) NOT NULL default'',  create_date date NOT NULL default'0000-00-00',  create_time time NOT NULL default'00:00:00',  change_date date NOT NULL default'0000-00-00',  change_time time NOT NULL default'00:00:00',  last_Access int(10) unsigned NOT NULL default'0',  passwd_lastchanged int(10) unsigned NOT NULL default'0',  status tinyint(4) NOT NULL default'1',  PRIMARY KEY (username),  KEY status (status)  ) TYPE=MyISAM;  #####################end########################    [root@localhost root]# mysql postfix < /work/postfix.sql    C.對表的內容的一些說明.    mysql> use postfix  Reading table information for completion of table and column names  You can turn off this feature to get a quicker startup with -A    Database changed  mysql> show tables;  +-------------------+   Tables_in_postfix   +-------------------+   alias          domain         mailbox        +-------------------+  3 rows in set (0.00 sec)    mysql> desc alias;  +----------+--------------+------+-----+---------+-------+   Field   Type     Null Key Default Extra   +----------+--------------+------+-----+---------+-------+   username varchar(255)     PRI             goto   text                       domain  varchar(255)                  +----------+--------------+------+-----+---------+-------+  3 rows in set (0.00 sec)    mysql> desc domain;  +-------------+--------------+------+-----+---------+-------+   Field    Type     Null Key Default Extra   +-------------+--------------+------+-----+---------+-------+   domain    varchar(255)     PRI             description varchar(255)                  +-------------+--------------+------+-----+---------+-------+  2 rows in set (0.00 sec)    mysql> desc mailbox;  +--------------------+----------------------+------+-----+------------+-------+   Field        Type         Null Key Default   Extra   +--------------------+----------------------+------+-----+------------+-------+   userid       varchar(20) binary                     username      varchar(255)         PRI              password      varchar(255)                        home        varchar(255)                        maildir       varchar(255)                        name        varchar(255)                        uid         smallint(5) unsigned       12345          gid         smallint(5) unsigned       12345          quota        varchar(255)                        domain       varchar(255)                        create_date     date               0000-00-00        create_time     time               00:00:00         change_date     date               0000-00-00        change_time     time               00:00:00         last_access     int(10) unsigned         0            passwd_lastchanged int(10) unsigned         0            status       tinyint(4)          MUL 1           +--------------------+----------------------+------+-----+------------+-------+  17 rows in set (0.00 sec)    mysql>  domain表的解釋:  domain 任意的domain.  description 通常是2種 "local:" 用於本地的 or "virtual:" 用於是虛擬的.  alias表的解釋:  username 是虛擬的郵箱[email protected] ,將被轉發到goto下的聯結中.  goto 可以用簡單的名字,如果是本地用戶名,如(root, postmaster, etc.), 或者是整個的郵箱名字,[email protected]。    Mailbox表的內容:  Userid 使用者編碼  username 可以是user.domain.tld 或 [email protected]  password 在mysql中用encrypt('password') 輸入.  name 使用著的真實姓名。  uid 虛擬用戶身份uid  gid 組的gid  home "/usr/local/virtual/". Maildirs必須在此目錄下。  domain 這欄可以不要,但有些軟件需要他。  maildir 是整個地址,必須帶”/”結尾。  Quota 郵箱的空間或信息量的限制。  status 0 為禁止。"MYSQL_WHERE_CLAUSE= status" .    三、pam-mysql的編譯  tar pam-mysql-5.0.tar.gz  make cp pam_mysql.so /lib/security    四、修改pam  [root@localhost  pam_mysql]#  cd  /etc/pam.d  [root@localhost  pam.d]#  cp  /work/postfix  postfix  [root@localhost  pam.d]#  postfix的內容如下:  ##########/etc/pam.d/postfix##################  echo  auth  sufficient  pam_mysql.so  user=postfix  passwd=postfix  host=localhost  db=postfix  table=mailbox  usercolumn=username  passwdcolumn=password  crypt=1  echo  account  requir




Copyright © Linux教程網 All Rights Reserved