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 ( CREATE TABLE mailbox ( [root@localhost root]# mysql postfix < /work/postfix.sql |
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表的解释: Mailbox表的内容: |
三、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 required pam_mysql.so user=postfix passwd=postfix host=localhost db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1 echo auth sufficient pam_unix_auth.so echo account sufficient pam_unix_acct.so [root@localhost pam.d]# [ -f imap ] && mv imap imap.orig [root@localhost pam.d]# [ -f pop ] && mv pop pop.orig [root@localhost pam.d]# [ -f smtp ] && mv smtp smtp.orig [root@localhost pam.d]# n -s postfix imap bash: n: command not found [root@localhost pam.d]# ln -s postfix imap [root@localhost pam.d]# ln -s postfix pop [root@localhost pam.d]# ln -s postfix smtp [root@localhost pam.d]# cp postfix sieve [root@localhost pam.d]# cd .. |
五、cyrus-sasl的安装配置
我本不想重新编译cyrus-sasl的,可是fedora自带的在我测试的时候出问题,还是重编译吧,虽然fedora带的也是2.1.15版本。
[root@localhost etc]# cd /ruanjian [root@localhost ruanjian]# cd cyrus-sasl-2.1.15 [root@localhost cyrus-sasl-2.1.15]# ./configure --disable-sample \ > --disable-pwcheck --disable-gssapi --disable-cram \ > --disable-digest --disable-krb4 --disable-anon \ > --with-saslauthd=/var/run/saslauthd \ > --enable-plain --enable-login [root@localhost cyrus-sasl-2.1.15]# [ -d /usr/lib/sasl2 ] && mv /usr/lib/sasl2 /usr/lib/sasl2.orig [root@localhost cyrus-sasl-2.1.15]# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2 [root@localhost cyrus-sasl-2.1.15]# echo /usr/local/lib >> /etc/ld.so.conf [root@localhost cyrus-sasl-2.1.15]# echo /usr/local/lib/sasl2 >> /etc/ld.so.conf [root@localhost cyrus-sasl-2.1.15]# ldconfig [root@localhost cyrus-sasl-2.1.15]# [root@localhost cyrus-sasl-2.1.15]# echo pwcheck_method: saslauthd > /usr/lib/sasl2/smtpd.conf [root@localhost cyrus-sasl-2.1.15]# /usr/local/sbin/saslauthd -a pam [root@localhost cyrus-sasl-2.1.15]# |
六、postfix的安装和配置
A.先停止sendmail.fedora已经默认安装了sendmail,去掉它。
[root@localhost ruanjian]# /etc/init.d/sendmail stop 关闭 sendmail: [失败] [root@localhost ruanjian]# mv /usr/bin/newaliases /usr/bin/newaliases.orig [root@localhost ruanjian]# mv /usr/bin/mailq /usr/bin/mailq.orig [root@localhost ruanjian]# mv /usr/sbin/sendmail /usr/sbin/sendmail.orig |
B.添加用户和组
[root@localhost ruanjian]# groupadd -g 12345 postfix [root@localhost ruanjian]# groupadd -g 12346 postdrop [root@localhost ruanjian]# useradd -u 12345 -g 12345 -c postfix -d /dev/null -s /nologin postfix |
C.编译postfix
[root@mail ruanjian]# cd postfix-2.0.16 [root@mail postfix-2.0.16]# make -f Makefile.init makefiles \ > 'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -I/usr/include/mysql -I/usr/include/sasl' \ > 'AUXLIBS=-L/usr/lib/mysql -L/usr/local/lib/sasl2 -lmysqlclient -lsasl2 -lz -lm' [root@mail postfix-2.0.16]# make install [root@localhost postfix-2.0.16]# cd /etc [root@localhost etc]# mv aliases aliases.orig [root@localhost etc]# ln -s postfix/aliases aliases [root@localhost etc]# cd postfix [root@localhost postfix]# echo 'root: tester' >> /etc/postfix/aliases [root@localhost postfix]# postalias /etc/postfix/aliases [root@localhost postfix]# |
1. 主要是main.cf的配置。 smtpd_sasl_auth_enable = yes 2. mysql_virtual_alias_maps.cf 如下 user = postfix 3. mysql_virtual_domains_maps.cf 如下 user = postfix 4. mysql_virtual_mailbox_maps.cf 如下 user = postfix |
七、测试端口25
A. 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> INSERT INTO alias (username,goto) VALUES ('postmaster@lansemail.com','tester@lansemail.com'); Query OK, 1 row affected (0.08 sec) mysql> INSERT INTO domain (domain,description) VALUES ('lansemail.com','local:'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO mailbox (username,password,home,maildir,name,domain,create_date,create_time) VALUES('tester','$1$pi.WVgBx$a3dUCzBnbY76jnZlqWQCQ/','/usr/local/virtual/','tester@lansemail.com/','tester','lansemail.com','2003-11-19','21:24:00'); Query OK, 1 row affected (0.03 sec) mysql> select * from mailbox -> ; +----+-----+---+----+-----+----+----+--+----+--+-+-+----+------+-------+----------+----+ | userid | username | password | home | maildir | name | uid | gid | quota | domain | create_date | create_time | change_date | change_time | last_access | passwd_lastchanged | status | +----+-----+------------------+-----------+------------+----+----+----+----+--------+-------+-------+-------+-------+-------+----------+----+ | | tester | $1$pi.WVgBx$a3dUCzBnbY76jnZlqWQCQ/ | /usr/local/virtual/ | tester@lansemail.com/ | tester | 12345 | 12345 | | lansemail.com | 2003-11-19 | 21:24:00 | 0000-00-00 | 00:00:00 | 0 | 0 | 1 | +----+-----+------------------+-----------+------------+----+----+----+----+--------+-------+-------+-------+-------+-------+----------+----+ 1 row in set (0.11 sec) mysql> |
这里用的username为tester,只是用来测试端口用的,正式使用一定要用全名tester@lansemail.com.
否则信件收不到,信息如下
无法到达以下收件人:
'tester@lansemail.com',时间为 21/11/2003 13:05
450 <tester@lansemail.com>: User unknown in local recipient table
B.[root@localhost postfix]# telnet localhost 25
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 localhost.localdomain ESMTP Postfix ehlo local host 250-localhost.localdomain 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN OTP 250-AUTH=LOGIN PLAIN OTP 250-XVERP 250 8BITMIME auth plain dGVzdGVyAHRlc3RlcgB0ZXN0cHc= 235 Authentication successful quit 221 Bye Connection closed by foreign host. [root@localhost postfix]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 localhost.localdomain ESMTP Postfix ehlo localhost 250-localhost.localdomain 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN OTP 250-AUTH=LOGIN PLAIN OTP 250-XVERP 250 8BITMIME auth login 334 VXNlcm5hbWU6 dGVzdGVy -->username: tester(用printf 'tester' | mmencode取得。) 334 UGFzc3dvcmQ6 dGVzdHB3 -->password: testpw 235 Authentication successful quit 221 Bye Connection closed by foreign host. [root@localhost postfix]# |
A. 先在普通用户下
#./configure -without-authpwd -without-authpam -without-authuserdb -without-authshadow -without-cram -without-chkpw -without-ldap -without-pgsql -without-authdaemon -without-authcustom -with-authmysql #make #make check #su root #make install #make install-configure |
B.修改authmysqlrc,这里是简单的
#DEFAULT_DOMAIN domain.tld MYSQL_CRYPT_PWFIELD password MYSQL_DATABASE postfix MYSQL_GID_FIELD '12345' MYSQL_HOME_FIELD '/usr/local/virtual' MYSQL_LOGIN_FIELD username MYSQL_MAILDIR_FIELD maildir MYSQL_NAME_FIELD name MYSQL_OPT 0 MYSQL_PASSWORD postfix #MYSQL_PORT 3306 #MYSQL_QUOTA_FIELD quota MYSQL_SERVER localhost MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_UID_FIELD '12345' MYSQL_USERNAME postfix MYSQL_USER_TABLE mailbox #MYSQL_WHERE_CLAUSE status |
C. [root@localhost root]# /usr/lib/courier-imap/bin/maildirmake
/usr/local/virtual/tester@lansemail.com [root@localhost root]# chmod -R 700 /usr/local/virtual/tester@lansemail.com [root@localhost root]# chown -R postfix:postfix /usr/local/virtual/tester@lansemail.com D. 启动courier-imap [root@localhost root]# /usr/lib/courier-imap/libexec/pop3d.rc start [root@localhost root]# /usr/lib/courier-imap/libexec/imapd.rc start [root@localhost root]# pstree | grep courier |-2*[courierlogger] |-2*[couriertcpd] [root@localhost root]# netstat -an | grep LISTEN tcp 0 0 0.0.0.0:32770 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:32771 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN |
九、测试端口110
[root@localhost root]# telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Hello there. user tester +OK Password required. pass testpw +OK logged in. list +OK POP3 clients that break here, they violate STD53. . quit +OK Bye-bye. Connection closed by foreign host. [root@localhost root]# |
十、一切ok了,用你的outlook试试。。。。记住,添加用户邮箱,一定要用全名。再去找个webmail吧。
,自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |