📄 基于freebsd和postfix的邮件系统与邮件列表的web mail安装 linuxsir_org.htm
字号:
<P>
<DIV class=codeblock><CODE>smtpd_helo_required =
yes<BR>strict_rfc821_envelopes = yes<BR>smtpd_etrn_restrictions =
permit_mynetworks,
reject<BR>#=====================BASE=====================<BR>myhostname =
mail.toping.net<BR>mydomain = toping.net<BR>mydestination =
$myhostname<BR>local_recipient_maps =<BR>command_directory =
/usr/local/sbin<BR>local_transport =
virtual<BR>#=====================MySQL=====================<BR>virtual_alias_maps
=
mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf<BR>virtual_gid_maps
= static:125<BR>virtual_mailbox_base = /<BR>virtual_mailbox_domains =
mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf<BR>virtual_mailbox_limit
= 51200000<BR>virtual_mailbox_maps =
mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf<BR>virtual_minimum_uid
= 125<BR>virtual_transport = virtual<BR>virtual_uid_maps =
static:125<BR>#=====================Quota=====================<BR>virtual_create_maildirsize
= yes<BR>virtual_mailbox_extended = yes<BR>virtual_mailbox_limit_maps =
mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf<BR>virtual_mailbox_limit_override
= yes<BR>virtual_maildir_limit_message = Sorry, the user's maildir has
overdrawn his diskspace quota, please try again
later.<BR>virtual_overquota_bounce =
yes<BR>#====================SASL=====================<BR>smtpd_sasl_auth_enable
= yes<BR>smtpd_sasl_security_options =
noanonymous<BR>broken_sasl_auth_clients =
yes<BR>smtpd_delay_reject=yes<BR>smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject<BR>smtpd_client_restrictions
= permit_sasl_authenticated</CODE></DIV>
<P></P>
<P>更详细的参数设置请看论坛:</P>
<P>http://www.toping.net/bbs/htm_data/7/0601/871.html</P>
<P>(4)编辑/usr/local/etc/postfix/mysql_virtual_alias_maps.cf<BR>
<DIV class=codeblock><CODE>mail# ee
/usr/local/etc/postfix/mysql_virtual_alias_maps.cf</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>user = postfix<BR>password = postfix<BR>hosts =
localhost<BR>dbname = postfix<BR>query = SELECT alias FROM userinfo WHERE
address='%s' AND active = 1</CODE></DIV>
<P></P>
<P>(5)编辑/usr/local/etc/postfix/mysql_virtual_domains_maps.cf</P>
<P>
<DIV class=codeblock><CODE>mail# ee
/usr/local/etc/postfix/mysql_virtual_domains_maps.cf</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>user = postfix<BR>password = postfix<BR>hosts =
localhost<BR>dbname = postfix<BR>query = SELECT domain FROM domaininfo
WHERE domain='%s'</CODE></DIV>
<P></P>
<P>(6)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf</P>
<P>
<DIV class=codeblock><CODE>mail# ee
/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>user = postfix<BR>password = postfix<BR>hosts =
localhost<BR>dbname = postfix<BR>query = SELECT maildir FROM userinfo
WHERE address='%s' AND active = 1</CODE></DIV>
<P></P>
<P>(7)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf</P>
<P>
<DIV class=codeblock><CODE>mail# ee
/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>user = postfix<BR>password = postfix<BR>hosts =
localhost<BR>dbname = postfix<BR>query = SELECT quota FROM userinfo WHERE
address='%s'</CODE></DIV>
<P></P>
<P><FONT id=2.3 size=3><B><BR>2.3 配置Courier-imap<BR></B></FONT></P>
<P>(1)修改Courier相关设置,/usr/local/etc/courier-imap/imapd:</P>
<P>
<DIV class=codeblock><CODE>IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE
THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA"</CODE></DIV>
<P></P>
<P>(2)修改/usr/local/etc/courier-imap/pop3d</P>
<P>
<DIV class=codeblock><CODE>POP3AUTH="LOGIN CRAM-MD5
CRAM-SHA1"</CODE></DIV>
<P></P>
<P>(3)编辑修改/usr/local/etc/authlib/authmysqlrc</P>
<P>
<DIV class=codeblock><CODE>mail# mv /usr/local/etc/authlib/authmysqlrc
/usr/local/etc/authlib/authmysqlrc_bak<BR>mail# ee
/usr/local/etc/authlib/authmysqlrc</CODE></DIV>
<P></P>
<P>
<DIV class=codeblock><CODE>MYSQL_SERVER localhost
//数据库主机地址<BR>MYSQL_USERNAME postfix //数据库用户名<BR>MYSQL_PASSWORD postfix
//数据库密码<BR>MYSQL_PORT 0<BR>MYSQL_OPT 0<BR>MYSQL_DATABASE postfix
//数据库名称<BR>MYSQL_USER_TABLE userinfo<BR>MYSQL_CRYPT_PWFIELD
passwd<BR>MYSQL_UID_FIELD '125'<BR>MYSQL_GID_FIELD
'125'<BR>MYSQL_LOGIN_FIELD address<BR>MYSQL_HOME_FIELD
homedir<BR>MYSQL_NAME_FIELD realname<BR>MYSQL_MAILDIR_FIELD
maildir<BR>MYSQL_QUOTA_FIELD quota</CODE></DIV>
<P></P>
<P><B>注:</B>这里得用tab键来跳格</P>
<P>(4)编辑/usr/local/etc/authlib/authdaemonrc</P>
<P>
<DIV class=codeblock><CODE>mail# mv /usr/local/etc/authlib/authdaemonrc
/usr/local/etc/authlib/authdaemonrc_bak<BR>mail# ee
/usr/local/etc/authlib/authdaemonrc</CODE></DIV>
<P></P>
<P>
<DIV
class=codeblock><CODE>authmodulelist="authmysql"<BR>authmodulelistorig="authmysql"<BR>version="authdaemond.mysql"<BR>daemons=5<BR>authdaemonvar=/var/run/authdaemond<BR>subsystem=mail<BR>DEBUG_LOGIN=0<BR>DEFAULTOPTIONS="wbnodsn=1"</CODE></DIV>
<P></P>
<P>重启服务器</P>
<P>3、手动设置第一个用户并测试 </P>
<P>本章介绍如何开通用户,并且测试系统是否正常。</P>
<P><B>注:</B>增加用户时请到这里生成加密后的密码后直接插入到数据库中就可以了。</P>
<P>http://www.toping.net/soft<BR>
<DIV class=codeblock><CODE>mail# mysql<BR>mysql> use
postfix;<BR>mysql> show tables;<BR>+-------------------+<BR>|
Tables_in_postfix |<BR>+-------------------+<BR>| address |<BR>| admin
|<BR>| card |<BR>| domaininfo |<BR>| lastauth |<BR>| logs |<BR>| message
|<BR>| personal |<BR>| scheduler |<BR>| stow |<BR>| userinfo |<BR>|
vpopmail |<BR>+-------------------+<BR>12 rows in set (0.00
sec)</CODE></DIV>
<P></P>
<P>增加域名和管理员</P>
<P>
<DIV class=codeblock><CODE>mysql> desc
domaininfo;<BR>+-------------+-------------+------+-----+------------+----------------+<BR>|
Field | Type | Null | Key | Default | Extra
|<BR>+-------------+-------------+------+-----+------------+----------------+<BR>|
domain_id | int(5) | | PRI | NULL | auto_increment |<BR>| domain |
varchar(25) | | UNI | | |<BR>| alias | varchar(30) | YES | | NULL | |<BR>|
passwd | varchar(35) | | | | |<BR>| usernum | int(5) | | | 0 | |<BR>|
quota | int(11) | | | 0 | |<BR>| des | varchar(30) | YES | | NULL | |<BR>|
expire | date | | | 0000-00-00 | |<BR>| active | tinyint(1) | | | 1 |
|<BR>| create_time | datetime | YES | | NULL |
|<BR>+-------------+-------------+------+-----+------------+----------------+<BR>10
rows in set (0.00 sec)<BR>mysql> INSERT INTO `domaininfo` VALUES (7,
'toping.net', NULL, '$1$jNXThQXq$KPjm.WE2f2yX5rceY48vX. ', 50, 500, NULL,
'0000-00-00', 1, '2005-04-19 23:19:11');<BR>Query OK, 1 row affected (0.00
sec)</CODE></DIV>
<P></P>
<P><B>注:</B>这里的toping.net的管理密码为:admin123</P>
<P>
<DIV class=codeblock><CODE>mysql> desc
userinfo;<BR>+-------------+-------------+------+-----+---------------------+----------------+<BR>|
Field | Type | Null | Key | Default | Extra
|<BR>+-------------+-------------+------+-----+---------------------+----------------+<BR>|
id | int(11) | | PRI | NULL | auto_increment |<BR>| userid | varchar(20) |
| | | |<BR>| domain_id | int(5) | | | 0 | |<BR>| address | varchar(50) | |
UNI | | |<BR>| alias | varchar(60) | YES | | NULL | |<BR>| passwd |
varchar(35) | | | | |<BR>| realname | varchar(20) | YES | | NULL | |<BR>|
quota | int(11) | | | 0 | |<BR>| active | tinyint(1) | | | 0 | |<BR>|
homedir | varchar(60) | | | | |<BR>| maildir | varchar(60) | | | | |<BR>|
create_time | datetime | | | 0000-00-00 00:00:00 | |<BR>| fax |
varchar(20) | | | | |<BR>| telephone | varchar(15) | | | | |<BR>| sex |
int(1) | | | 0 | |<BR>| year | int(4) | | | 0 | |<BR>| MONTH | int(2) | |
| 0 | |<BR>| DAY | int(2) | | | 0 | |<BR>| education | varchar(4) | | | |
|<BR>| marital | int(1) | | | 0 | |<BR>| occupation | varchar(15) | | | |
|<BR>| companyname | varchar(30) | | | | |<BR>| province | varchar(6) | |
| |
|<BR>+-------------+-------------+------+-----+---------------------+----------------+<BR>23
rows in set (0.00 sec) <BR>mysql> INSERT INTO `userinfo` VALUES (8,
'webmaster', 7, 'webmaster@toping.net',
NULL,'$1$4DLQeNkz$QKCAQqg244XwvLl2SD11f0', 'webmaster', 209715200, 1,
'/var/mail/toping.net/webmaster/',
'/var/mail/toping.net/webmaster/Maildir/', '2005-04-20 23:45:17', '', '',
0, 0, 0, 0, '', 0, '', '', '');</CODE></DIV>
<P></P>
<P><B>注:</B>这里的webmaster用户的邮箱密码为:000000</P>
<P>
<DIV class=codeblock><CODE>mysql>quit</CODE></DIV>
<P></P>
<P>设置用户的目录与权限:</P>
<P>
<DIV class=codeblock><CODE>Mail# mkdir -p
/var/mail/toping.net/webmaster<BR>Mail# /usr/local/bin/maildirmake
/var/mail/toping.net/webmaster/Maildir<BR>Mail# chmod -R 777
/var/mail/toping.net/<BR>Mail# chown -R postfix:postfix
/var/mail/toping.net</CODE></DIV>
<P></P>
<P>至此用户设置完毕,这里只使用一个域名,同理可以设置多个域名。</P>
<P><FONT id=4 size=4><B><BR>4、安装postfix管理工具<BR></B></FONT></P>
<P>本节主要介绍如何安装和使用postfix管理工具。</P>
<P><FONT id=4.1 size=3><B><BR>4.1
安装postfix管理工具来设置第一个域名和用户<BR></B></FONT></P>
<P>上传管理工具到网站目录</P>
<P>后修改include/config.inc.php中的<BR>
<DIV
class=codeblock><CODE>define(DOMAINSDIR,"/home/vmail"); 为 define(DOMAINSDIR,"/var/mail");<BR>define(MYSQL_HOST,
'localhost'); 为 您的MySQL服务器的主机名<BR>define(MYSQL_USER,
'root'); 为 您的MySQL的用户名<BR>define(MYSQL_PASS,
'mypasswd'); 为 您的MySQL的密码<BR>define(MYSQL_DATA, 'postfix');
为 您的邮件服务器的数据库</CODE></DIV>
<P></P>
<P>修改完成后运行: http://mail.toping.net/webadmin/index.php</P>
<P>完装完成!!</P>
<P><FONT id=4.2 size=3><B><BR>4.2 用户登录测试<BR></B></FONT></P>
<P>用户登录测试</P>
<P>安装p5-MIME-Base64</P>
<P>
<DIV class=codeblock><CODE>mail# cd
/usr/ports/converters/p5-MIME-Base64/<BR>mail# make install
clean</CODE></DIV>
<P></P>
<P>通过p5-MIME-Base64来取得用户名和密码的base64编码</P>
<P>
<DIV class=codeblock><CODE>mail# perl -MMIME::Base64 -e 'print
encode_base64("webmaster\@toping.net");'<BR>d2VibWFzdGVyQHRvcGluZy5uZXQ=<BR>mail#
perl -MMIME::Base64 -e 'print
encode_base64("000000");'<BR>MDAwMDAw</CODE></DIV>
<P></P>
<P>测试发送邮件(端口:25):</P>
<P>
<DIV class=codeblock><CODE>mail# telnet 127.0.0.1 25<BR>Trying
127.0.0.1...<BR>Connected to 0.<BR>Escape character is '^]'.<BR>220
mail.toping.net ESMTP Postfix<BR>ehlo
mail<BR>250-mail.toping.net<BR>250-PIPELINING<BR>250-SIZE
4194304<BR>250-VRFY<BR>250-ETRN<BR>250-AUTH NTLM LOGIN PLAIN
OTP<BR>250-AUTH=NTLM LOGIN PLAIN OTP<BR>250 8BITMIME<BR>auth login<BR>334
VXNlcm5hbWU6<BR>d2VibWFzdGVyQHRvcGluZy5uZXQ=
//此为用户名id:webmaster@toping.net<BR>334 UGFzc3dvcmQ6<BR>MDAwMDAw
//此为用户密码password:000000<BR>235 Authentication successful<BR>MAIL
FROM:<webmaster@toping.net> //告诉服务器发件人的Email地址<BR>250 Ok<BR>RCPT
TO:<webmaster@toping.net> //告诉服务器收件人的地址<BR>250 OK<BR>DATA
//告诉服务器开始写信<BR>354 End data with
<CR><LF>.<CR><LF><BR>SUBJECT:test
//subject后面填写的是邮件的主题<BR>test<BR>. //换行后输入.后按回车,表示信件内容书写完毕<BR>250 Ok:
queued as 58DC71D5<BR>quit //发送信件,结束对话,退出SMTP服务器<BR>221 Bye<BR>Connection
closed by foreign host</CODE></DIV>
<P></P>
<P>测试收取邮件(端口:110):</P>
<P>
<DIV class=codeblock><CODE>mail# telnet 127.0.0.1 110<BR>Trying
127.0.0.1...<BR>Connected to 0<BR>Escape character is '^]'<BR>+OK Hello
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -