天天看點

快速搭建企業級郵件系統iRedMail+Mysql+Postfix+php

以上設定正确,請登入測試發送郵件是否正常;

2. 增加郵件使用者和郵箱容量大小配額設定

a.首先登入mysql;

b.依次執行以下指令:

  1. ----------------------------------------------
  2. mysql> use vmail;
  3. Database changed
  4. mysql> INSERT INTO mailbox (username, password, name, maildir, quota, domain, active)
  5.     ->     VALUES ('[email protected]', '$1$W.UWoG.0$Bnq8mcbsi1UhFVpiJ2jvY0', 'testuser', 'hiamdin.com/testuser/', '2048', 'hiadmin.com', '1');                                         
  6. Query OK, 1 row affected (0.00 sec)
  7. 注:
  8. #在mailbox生成使用者帳号、密碼、以及郵箱容量quota 2048為2GB
  9. #其中password字段值,可以使用 openssl passwd -1 testuser生成;
  10. mysql> INSERT INTO alias (address, goto, domain, active)
  11.     ->     VALUES ('[email protected]', '[email protected]', 'hiadmin.com', '1');                     
  12. #alias 中生成别名;

c.也可以用iRedmail的tools 腳本;

  1.    $cd /path/to/iRedMail-0.4.0/tools #該目錄下有個create_mail_user_MySQL.sh的腳本,可以為你生成增加使用者的sql語句;
  2.    #執行腳本前實作生成userlist.txt
  3.    $echo testuser >userlist.txt #每行一個使用者名即可
  4.    $sh create_mail_user_MySQL.sh userlist.txt #生成output.sql
  5.    #登入到mysql,在vmail庫中執行
  6.    mysql> source /path/to/output.sql

d.設定自己域名的mx記錄,再登入RoundCube測試能否收發郵件!

a:安裝之前請先行設定mysql的root帳号和密碼;空密碼不被接受;

b:其中資料庫隻需選擇mysql即可;

c:webprogrem選擇RoundCube即可,其他預設;

d:請記住設定的mail admin的帳号和密碼。

三 配置過程

因為iRedMail的高度整合,使得配置過程異常的簡單。甚至可以不需要對postfix進行多餘設定;

注意修改以下基本配置:iRedmail安裝過程中已經增加的這部分設定,請在配置檔案的最末尾處修改;

1. myorigin

myorigin參數指明發件人所在的域名。如果你的使用者的郵件位址為[email protected],則該參數指定@後面的域名。預設地,postfix使用本地主機名作為myorigin,但是建議你最好使用你的域名,因為這樣更具有可讀性。比如:安裝postfix的主機為 mail.domain.com則我們可以這樣指定myorigin:

myorigin = domain.com 當然我們也可以引用其他參數,如: myorigin = $mydomain

2. mydestination

mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就

是你的postfix系統要接收什麼樣的郵件。比如:你的使用者的郵件位址為[email protected], 也就是你的域為domain.com, 則你就需要接收所有收件人為[email protected]的郵件。與myorigin一樣,預設地,postfix使用本地主機名作為 mydestination。如:

mydestination = $mydomain mydestination = domain.com

3. notify_classes

在postfix系統中,必須指定一個postfix系統管理者的别名指向一個使用者,

隻有這樣,在使用者遇到問題時才有報告的對象,postfix也才能将系統的問題報告給管理者。notify_classes參數就是用來指定向postfix管理者報告錯誤時的資訊級别。共有以下幾種級别:

bounce:将不可以投遞的郵件的拷貝發送給postfix管理者。出于個人隐私的緣故,該郵件的拷貝不包含信頭。

2bounce:将兩次不可投遞的郵件拷貝發送給postfix管理者。 delay:将郵件的投遞延遲資訊發送給管理者,僅僅包含信頭。 policy:将由于UCE規則限制而被拒絕的使用者請求發送給postfix管理者,包含整個SMTP會話的内容。 protocol:将協定的錯誤資訊或使用者企圖執行不支援的指令的記錄發送給postfix管理者。同樣包含整個SMTP會話的内容。 resource:将由于資源錯誤而不可投遞的錯誤資訊發送給postfix管理者,比如:隊列檔案寫錯誤等等。 software:将由于軟體錯誤而導緻不可投遞的錯誤資訊發送給postfix管理者。  

預設值為:

notify_classes = resource, software

4.myhostname myhostname 參數指定運作postfix郵件系統的主機的主機名。預設地,該值被設定為本地機器名。你也可以指定該值,需要注意的是,要指定完整的主機名。如:

myhostname = mail.domain.com

5.mydomain mydomain參數指定你的域名,預設地,postfix将myhostname的第一部分删除而作為mydomain的值。你也可以自己指定該值,如:

mydomain = domain.com

6.mynetworks mynetworks 參數指定你所在的網絡的網絡位址,postfix系統根據其值來差別使用者是遠端的還是本地的,如果是本地網絡使用者則允許其通路。你可以用标準的A、B、C類網絡位址,也可以用CIDR(無類域間路由)位址來表示,如:

192.168.1.0/24 192.168.1.0/26

7.inet_interfaces inet_interfaces 參數指定postfix系統監聽的網絡接口。預設地,postfix監聽 所有的網絡接口。如果你的postfix運作在一個虛拟的ip位址上,則必須指定其監聽的位址。如:

inet_interfaces = all inet_interface = 192.168.1.1

關于postfix的配置詳細介紹可參看戳這裡 需要注意的是dovecat配置在main.cf中的和master.cf的端口一緻;否則會導緻郵件發送失敗;

  1. ----------------------------------------------

  2.     #main.cf

  3.     content_filter = smtp-amavis:[127.0.0.1]:10024

  4.     #master.cf

  5.     127.0.0.1:10024  inet n  -   -   -   -  smtpd

  6.     -o content_filter=

  7.     -o local_recipient_maps=

  8.     -o relay_recipient_maps=

  9.     -o smtpd_restriction_classes=

  10.     -o smtpd_delay_reject=no

  11.     -o smtpd_client_restrictions=permit_mynetworks,reject

  12.     -o smtpd_helo_restrictions=

  13.     -o smtpd_sender_restrictions=

  14.     -o smtpd_recipient_restrictions=permit_mynetworks,reject

  15.     -o mynetworks_style=host

  16.     -o mynetworks=127.0.0.0/8

  17.     -o strict_rfc821_envelopes=yes

  18.     -o smtpd_error_sleep_time=0

  19.     -o smtpd_soft_error_limit=1001

  20.     -o smtpd_hard_error_limit=1000

  21.     -o smtpd_client_connection_count_limit=0

  22.     -o smtpd_client_connection_rate_limit=0

  23.     -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

以上設定完成後,确認啟動postfix、policyd、dovecot、httpd、mysqld;

二 安裝過程

因許多軟體涉及到yum安裝,這裡我給出國内一個非常快的Centos鏡像,請戳這裡下載下傳

1. 資料庫和郵件系統安裝

mysql 安裝和postfix 安裝 全部采取yum安裝

  1.    $ yum install -y mysql mysql-server mysql-devel
  2.    $ yum install -y postfix

2.php安裝

  1.    $ yum install -y php php-cli php-ldap php-pdo php-gd php-eaccelerator php-xml php-imap php-mcrypt php-pecl php-common php-mysql php-pear php-mbstring

3.iredmail 安裝

下載下傳解壓 iRedMail-0.4.0.tar.bz2

安裝指令:

  1.    $ cd /path/to/iRedMail-x.y.z/
  2.    $ cd pkgs/
  3.    $ sh get_all.sh
  4.    $ cd ../
  5.    $ sh iRedMail.sh

繼續閱讀