本站最近更新 - 使用說明 - 測試沙箱 - 搜尋 Wiki:

主選單

FreeBSD

PcBSD 0.83

Windows

程式語言

(edit)



編輯本頁 列印預覽 群組最近更新 本頁更新歷程

使用 vm-pop3d 建置郵件虛擬帳戶

幾天前利用 courier-imap 建置了虛擬帳戶,發現常用的 openwebmail 目前並不支援 imap,
因此只能換個方式,利用 vm-pop3d 來完成郵件虛擬戶的目的。

作業環境 FreeBSD 5.3 (6.0)

兩個 domain:domain1.com.tw domain2.com.tw DNS 請先建立 MX 的記錄

Step.1 安裝 postfix
 # cd /usr/ports/mail/postfix21
 # make install clean 

跳出來的選項,我都沒有選擇,其他的問題都採預設值即可

 修改 /etc/rc.conf 加上 sendmail="NONE"
 在 /usr/local/etc/rc.d 中產生 postfix.sh 的連結
 # ln -s /usr/local/sbin/postfix /usr/local/etc/rc.d/postfix.sh
 
Step.2 安裝 vm-pop3d
 # cd /usr/ports/mail/vm-pop3d/
 # make install clean

Step.3 安裝 apache
 # cd /usr/ports/www/apache13
 # make install clean

Step.4 安裝 openwebmail
 # cd /usr/ports/mail/openwebmail
 # make install clean

Step.5 設定 postfix - 修改 main.cf
加上這五行
 propagate_unmatched_extensions = virtual
 virtual_mailbox_base = /var/spool/virtual
 virtual_mailbox_maps = hash:/usr/local/etc/postfix/virtual_mailbox
 virtual_maps = hash:/usr/local/etc/postfix/virtual
 alias_maps = hash:/usr/local/etc/postfix/aliases
Step.6 設定虛擬帳戶的相關檔案

a. 網域的設定 /usr/local/etc/postfix/virtual_mailbox
 domain1.com.tw /var/spool/virtual/domain1.com.tw
 domain2.com.tw /var/spool/virtual/domain2.com.tw

b. 虛擬帳號的設定 /usr/local/etc/postfix/virtual
 george@domain1.com.tw   george.domain1.com.tw
 mary@domain2.com.tw     mary.domain1.com.tw

c. 對應的路徑 /usr/local/etc/postfix/aliases
 george.domain1.com.tw: /var/spool/virtual/domain1.com.tw/george
 mary.domain2.com.tw: /var/spool/virtual/domain2.com.tw/mary

Step.7 建立相關目錄
 # mkdir -p /var/spool/virtual/domain1.com.tw/
 # mkdir /var/spool/virtual/domain2.com.tw/
 # chown -R nobody /var/spool/virtual/     //將權限指定為 nobody 

Step.8 讓設定生效
 # postmap /usr/local/etc/postfix/virtual
 # postmap /usr/local/etc/postfix/virtual_mailbox
 # postalias /usr/local/etc/postfix/aliases

Step.9 產生密碼檔
 # mkdir /usr/local/etc/virtual/domain1.com.tw/    //建立放密碼的路徑
 # cd /usr/local/etc/virtual/domain1.com.tw
 # htpasswd -cd passwd george  // 產生 george@domain1.com.tw 的密碼
 # mkdir /usr/local/etc/virtual/domain2.com.tw/ 
 # cd /usr/local/etc/virtual/domain2.com.tw 
 # htpasswd -cd passwd mary // 產生 mary@domain2.com.tw 的密碼

 密碼檔採用 crypt() 方式處理,為了偷懶,直接採用 htpasswd 
 -c 建立檔案 -d 密碼以 crypt() 函數產生,第二次執行即不需加 -c 的選項

Step.10 修改 /etc/inetd.conf
 pop3 stream tcp nowait root /usr/local/sbin/vm-pop3d  vm-pop3d -u nobody

Step.11 啟動服務
 # /usr/local/etc/rc.d/postfix.sh start

Step.12 設定 openwebmail.conf
 /usr/local/www/cgi-bin/openwebmail/etc/openwebmail.conf
 auth_module             auth_vdomain.pl
 auth_withdomain         yes
 mailspooldir            /var/spool/mail
 .... 

Step.13 網域的設定檔 
 /usr/local/www/cgi-bin/openwebmail/etc/sites.conf 
 在此路徑下,產生域名的檔案 domain1.com.tw 及 domain2.com.tw 
 兩者內容僅 vdomain_admlist 不同:   
 enable_vdomain yes
 vdomain_admlist george
 vdomain_maxuser 100
 vdomain_vmpop3_pwdpath /usr/local/etc/virtual
 vdomain_vmpop3_pwdname passwd
 vdomain_vmpop3_mailpath /var/spool/virtual
 vdomain_postfix_aliases /usr/local/etc/postfix/aliases
 vdomain_postfix_virtual /usr/local/etc/postfix/virtual
 vdomain_postfix_postalias /usr/local/sbin/postalias
 vdomain_postfix_postmap /usr/local/sbin/postmap

接著在流灠器上鍵入網址即可。

在 openwebmail 上遇到的幾個錯誤:
1 .Undefined subroutine &ow::htmltext::str2html called at /usr/local/www//cgi-bin/openwebmail/shares/ow-shared.pl line 1283

在這裡找到處理方法 http://fily.dreamsky.com.tw/read.php?74
編輯 /usr/local/www/cgi-bin/openwebmail/.openwebmail-vdomain.pl在
 require "....";
後加上
 require "modules/htmltext.pl";

2.建立帳號後無法收信 maillog 上顯示 mail to file is restricted
修改 main.cf 加上
 allow_mail_to_commands = alias,forward,include 
 allow_mail_to_files = alias,forward,include
重新啟動 postfix 即可正常

07/14
George

參考網站:
http://www.reedmedia.net/software/virtualmail-pop3d/#passwords
編輯本頁 - 列印預覽 - 群組最近更新 - 本頁更新歷程 - 搜尋 Wiki
頁面最後更新於 2010 年 03 月 10 日,03:33 PM