架构基于FreeBSD和Postfix的IGENUS Webmail邮件
讨论组: index.
至此,认证部分基本完成。
安装postfix
mail# cd /usr/ports/mail/postfix
mail# make install clean
我的选择:
[X] VDA VDA (Virtual Delivery Agent)
[X] MySQL MySQL map lookups (choose version with WITH_MYSQL_VER)
[X] TLS SSL and TLS
[X] SASL2 Cyrus SASLv2 (Simple Authentication and Security Layer)
回答下面的两问题:
You need user "postfix" added to group "mail".[是否将postfix用户加到mail用户组]
Would you like me to add it [y]? y
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n
在/etc/rc.conf中加入postfix启动所需的启动选项
在/etc/rc.conf中加入:
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_procname="/usr/local/libexec/postfix/master"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
设置postfix启动所需
mail# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail
注:如果/usr/sbin/sendmail存在就删了再做上链接,如果升级内核和升级系统后要重新做这一步。
mail# echo ‘postfix: root’ >> /etc/aliases
mail# /usr/local/bin/newaliases
mail# chown postfix:postfix /etc/opiekeys
1.10 安装expect
用于Web客户端建立邮件用户
mail# cd /usr/ports/lang/expect
mail# make install clean
Chapter 2. 配置邮件服务器
本节主要讲述各种服务的参数配置。
2.1 配置rc.conf,编辑/etc/rc.conf
下面是前面所装软件都加入了启动选项的rc.conf配置:
mysql_enable="YES"
apache2_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_procname="/usr/local/libexec/postfix/master"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
2.2 配置postfix 和 cyrus-sasl
(1)修改/usr/local/etc/postfix/main.cf,在文件最后加入以下内容
mail# ee /usr/local/etc/postfix/main.cf
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
smtpd_etrn_restrictions = permit_mynetworks, reject
#=====================BASE=====================
myhostname = mail.toping.net
mydomain = toping.net
mydestination = $myhostname
local_recipient_maps =
command_directory = /usr/local/sbin
local_transport = virtual
#=====================MySQL=====================
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 125
virtual_transport = virtual
virtual_uid_maps = static:125
#=====================Quota=====================
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
#====================SASL=====================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_delay_reject=yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject
smtpd_client_restrictions = permit_sasl_authenticated
更详细的参数设置请看论坛:
(4)编辑/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
mail# ee /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT alias FROM userinfo WHERE address='%s' AND active = 1
(5)编辑/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
mail# ee /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domaininfo WHERE domain='%s'
(6)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
mail# ee /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM userinfo WHERE address='%s' AND active = 1
(7)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
mail# ee /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT quota FROM userinfo WHERE address='%s'
2.3 配置Courier-imap
(1)修改Courier相关设置,/usr/local/etc/courier-imap/imapd:
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA"
(2)修改/usr/local/etc/courier-imap/pop3d
POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"
(3)编辑修改/usr/local/etc/authlib/authmysqlrc
mail# mv /usr/local/etc/authlib/authmysqlrc /usr/local/etc/authlib/authmysqlrc_bak
mail# ee /usr/local/etc/authlib/authmysqlrc
MYSQL_SERVER localhost //数据库主机地址
MYSQL_USERNAME postfix //数据库用户名
MYSQL_PASSWORD postfix //数据库密码
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix //数据库名称
MYSQL_USER_TABLE userinfo
MYSQL_CRYPT_PWFIELD passwd
MYSQL_UID_FIELD '125'
MYSQL_GID_FIELD '125'
MYSQL_LOGIN_FIELD address
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD realname
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
注:这里得用tab键来跳格
(4)编辑/usr/local/etc/authlib/authdaemonrc
mail# mv /usr/local/etc/authlib/authdaemonrc /usr/local/etc/authlib/authdaemonrc_bak
mail# ee /usr/local/etc/authlib/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
version="authdaemond.mysql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=0
DEFAULTOPTIONS="wbnodsn=1"
重启服务器
Chapter 3.手动设置第一个用户并测试
本章介绍如何开通用户,并且测试系统是否正常。
注:增加用户时请到这里生成加密后的密码后直接插入到数据库中就可以了。
5.9.安装MailScanner-mrtg
mail# cd /usr/ports/mail/ mailscanner-mrtg
mail# make install clean
mailscanner-mrtg相关设置
mail# cd /usr/local/etc/mailscanner-mrtg //切换至mailscanner-mrtg 目录
mail# cp mailscanner-mrtg.conf.sample mailscanner-mrtg.conf
mail# cp mailscanner-mrtg.cfg.sample mailscanner-mrtg.cfg
mail# chmod 644 mailscanner-mrtg.conf //更改权限为可修改
mail# chmod 644 mailscanner-mrtg.cfg //更改权限为可修改
mail# ee mailscanner-mrtg.conf //修改mailscanner-mrtg.conf内容如下
#MTA = sendmail //默认值
MTA = postfix //修改后
#Where the MTA puts mail before MailScanner gets it
#Incoming Queue Dir = /var/spool/postfix.in/deferred/ # Postfix
#Incoming Queue Dir = /var/spool/exim.in/input/ # Exim
Incoming Queue Dir = /var/spool/mqueue.in/ # Sendmail //默认值
Incoming Queue Dir = /var/spool/postfix/hold # Postfix //修改后
#Where MailScanner puts your mail after it is scanned
#Outgoing Queue Dir = /var/spool/postfix/incoming/ # Postfix
#Outgoing Queue Dir = /var/spool/exim/input # Exim (?)
Outgoing Queue Dir = /var/spool/mqueue/ # Sendmail //默认值
Outgoing Queue Dir = /var/spool/postfix/incoming/ # Postfix //修改后(把#拿掉)
#Which interfaces to monitor (comma separated list)
Interfaces to Monitor = fxp0 //默认值
Interfaces to Monitor = vr0 //修改后(改成您的网卡吧)
mail# ee /usr/local/etc/apache/
mail# cd /usr/local/www/data
mail# chown -R postfix:postfix phpMyAdmin
mail# cd /usr/local/etc
mail# cp php.ini-dist php.ini
修改/usr/local/etc/php.ini
webmail上传附件设置:
register_globals = On
max_execution_time = 30 //改为60 (增加处理脚本的时间限制)
memory_limit = 8M //改为40M (这样才能发10M的附件)
post_max_size = 8M //改为10M
upload_max_filesize = 2M //改为10M
重启apache
mail# /usr/local/etc/rc.d/apache2.sh restart
Chapter 7. 安装邮件列表(MAILMAN)安装
本节主要讲述邮件列表mailman的安装和配置
设置/etc/make.conf
mail# ee /etc/make.conf
# mail/mailman
MAIL_GID="mailman"
安装mailman
mail# portinstall -m BATCH=yes mail/mailman
配置apache(新加入)
mail# ee /usr/local/etc/apache2/httpd.conf
ScriptAlias /mailman "/usr/local/mailman/cgi-bin"
AllowOverride None
Options none
Order allow,deny
Allow from all
Alias /pipermail "/usr/local/mailman/archives/public"
AllowOverride None
Options +FollowSymlinks
Order allow,deny
Allow from all
用check_perms
mail# /usr/local/mailman/bin/check_perms -f
注:加上-f参数可以修复。
修改/usr/local/mailman/Mailman/mm_cfg.py,加上:
DEFAULT_EMAIL_HOST = 'lists.toping.net'
MTA = 'Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.toping.net', 'toping.net']
添加一个邮件列表:
mail# /usr/local/mailman/bin/newlist mailman
把用户添加到邮件列表里测试,建一个文本文件,比如maillists.txt,一行一个邮件地址,然后执行如下命令:
mail# /usr/local/mailman/bin/add_members -n maillists.txt mailman
mail# ee postfix/main.cf
owner_request_special = no
recipient_delimiter = +
virtual_alias_maps = hash:/usr/local/mailman/data/virtual-mailman,
mysql:/usr/local/etc/postfix/mysql/mysql_virtual_alias_maps.cf
alias_maps = hash:/usr/local/mailman/data/aliases,hash:/usr/local/etc/postfix/aliases
mail# ee Default.py
DEFAULT_EMAIL_HOST = 'lists.toping.net'
DEFAULT_URL_HOST = 'lists.toping.net'
DEFAULT_URL_PATTERN = 'http://%s/mailman/'
DEFAULT_SERVER_LANGUAGE = 'zh_CN'
设置virtual-mailman
mail# ee /usr/local/mailman/data/virtual-mailman
lists.meilai.com
邮件列表的配置
Default.py和mm_cfg.py的配置是针对全局的,对全局配置文件的修改不会影响到已经存在的邮件列表。mailman提供了config_list这个命令来对单个邮件列表进行配置,先导出该邮件列表的配置:
mail# /usr/local/mailman/bin/config_list -o /tmp/config mailman
然后修改/tmp/config文件,里面有很多选项,可以根据自己的要求修改,比如加上回复到邮件列表的邮件头、去掉mailman自动加的边脚等等,最后把这个配置文件导回给邮件列表就可以了:
mail# /usr/local/mailman/bin/config_list -i /tmp/config mailman
下面你可以通过web去管理你的邮件列表:
http://lists.toping.net/mailman/admin/mailman
查看邮件列表信息:
http://lists.toping.net/mailman/listinfo/mailman/
功能太强大了,这里不一一的讲解,自己去发现吧
Chapter 7. 查看系统状态
本节主要讲述phpSysInfo工具的安装和配置
安装phpSysInfo(2.2)
mail# cd /usr/ports/www/phpSysInfo
mail# make install clean
mail# cd /usr/local/www/data-dist/phpSysInfo
mail# cp config.php.new config.php
- 最新文章
- FreeBSD下架构Postfix的邮件系统[01-03]
- FreeBSD + Postfix %26 Maildir ..[01-03]
- 在FreeBSD上组建ISP级的邮件系统(Ver:0.3)[01-03]
- FreeBSD下Qmail安装[01-03]
- 基于FreeBSD和Postfix的邮件系统与邮件列表的we[01-03]
- FreeBSD下E-mail服务搭建[01-03]
- 相关文章
- FreeBSD下架构Postfix的邮件系统[01-03]
- FreeBSD + Postfix %26 Maildir ..[01-03]
- 在FreeBSD上组建ISP级的邮件系统(Ver:0.3)[01-03]
- FreeBSD下Qmail安装[01-03]
- 基于FreeBSD和Postfix的邮件系统与邮件列表的we[01-03]
- FreeBSD下E-mail服务搭建[01-03]
