[¸½ÑÔ]
¸Ã¸½ÑÔ»òÐí²»³ÉÆäΪʲôÐí¿ÉÖ¤£¬µ«»¹ÊÇÏ£ÍûÄú×ðÖØ×÷ÕßµÄÔ¸Íû¡£
Èç¹ûÄú·¢ÏÖÓÐʲô´íÎó£¬Ç뼰ʱ֪ͨÎÒ£¬ÎÒ½«¾¡¿ì×÷³öÐ޸ġ£Èç¹ûÄúÔÚÍøÉÏ×ªÔØ£¬Äǽ«ÊÇÃâ·Ñ£¬µ«Ï£ÍûÄú¸½Éϱ¾¸½ÑÔ£¬²¢ÇÒ×¢Ã÷³ö´¦µÄÁ´½Ó¡£Èç¹ûÄúÒª°ÑËüÓÃÓ¡Ë¢ÎïÐÎʽ³ö°æ£¬Çëͨ¹ýwww.cnfug.org¸ú±¾È˽ÓÇ¢¡£
ÄúÔÚÒÔ±¾ÎÄ×÷Ϊ¸ù¾ÝÅäÖõçÄÔµÄʱºò£¬Èô³öÏÖÈκιÊÕÏ£¬ºó¹û×Ô¸º£¬Óë±¾×÷ÕßÎ޹ء£
Ä¿±ê
±¾ÎĵÄÄ¿µÄÊÇÔÚÓÚ˵Ã÷ÈçºÎÔÚFreeBSDµÄ»·¾³ÏÂÃæ´î½¨Ò»¸öÓʼþϵͳ¡£Õâ¸öÓʼþϵͳ֧³ÖÐéÄâÓû§£¬ÌṩIMAP·þÎñ£¬¿ÉÒÔ³ÉΪ¹¹³ÉWebMailϵͳµÄ»ù´¡¡£
Ö§³ÖIMAP·þÎñµÄWebmailÓÐÖøÃûµÄIMPºÍSquirrelMailµÈµÈ¡£
±¾
ÎÄËäÈ»ÊÇÓÃPgSQL×÷Ϊºǫ́Êý¾Ý¿â£¬µ«ÊÇÈÔÈ»¶ÔʹÓÃMySQL£¬LDAPÊý¾Ý¿âµÄ×÷Ϊºǫ́µÄÀàËÆÓʼþϵͳÓÐÆô·¢×÷Óá£Èç¹û×ÐϸÔĶÁ±¾ÎÄ£¬Ò»¶¨»áÓÐËùÊÕ»õ
µÄ¡£Ê¹ÓÃÆäËûºǫ́Êý¾Ý¿âµÄ»°£¬ÒªÐ޸ĵĵط½ÓÐÁ½´¦£ºpam·þÎñºÍmain.cfµÄvirtual_mailbox_mapsÏî¡£
±¾ÎÄËùÓеĵ÷ÊÔÊÇÔÚFreeBSD-4.8 releaseÉÏͨ¹ýµÄ£¬Ò²¶ÔFreeBSD-5×÷Á˶îÍâµÄ˵Ã÷£¬Ö÷ÒªµÄ²îÒìÊǼ¯ÖÐÔÚpam·þÎñµÄÅäÖò»Í¬¶øÒÑ£¬Ï£ÍûÄÜÓÐËù°ïÖú¡£
LinuxµÄÓû§Ò²ÄÜ¿ÉÒԲο¼±¾ÎĵÄÅäÖã¬ÄúÖ»ÐèÒªÁôÒâ·¾¶ºÍpam·þÎñµÄÅäÖá£pam·þÎñÅäÖøúFreeBSD-5ÀàËÆ¡£
Áã¡¢ÔĶÁ×¼±¸
1)ÔĶÁ±¾ÎÄÐèÒªÒ»¶¨»ù´¡£¬ÎÒ¼ÙÉèÄãÒѾÇå³þÒÔÏµĶ«Î÷£º
ÓʼþϵͳµÄ»ù±¾ÔÀí£¬ÓʼþϵͳµÄÏà¹ØÐÒéµÄ×÷Óã¬ÀýÈçsmtp,pop3,imap¡£
2)ʲôÊÇSASL£º
SASLµÄÓ¢ÎÄÈ«³ÆÊÇSimple Authentication and Security Layer£¬¼òµ¥ÑéÖ¤ºÍ°²È«²ã¡£
SMTP
ÐÒ鲢ûÓÐÌṩÓû§ÑéÖ¤¹¦ÄÜ£¬ºÜÈÝÒ×ÄäÃûÖÐתÓʼþ¡£¼´Ê¹ÏÞÖÆÁË¿ÉÒÔת·¢µÄÍø¶Î£¬Ò²²»°²È«¡£ËûµÄ¶¨ÒåÊÇ£º a method for adding
authentication support to connection-based protocols£¬Îª»ùÓÚÁ¬½ÓµÄÐÒéÌṩÈÏÖ¤¹¦ÄÜ¡£
3)Èí¼þµÄ½ÇÉ«£º
Postfix£º³äµ±MTA£¬¾ÍÊÇsmtpd£¬×÷ΪÓʼþת·¢Óá£
Cyrus-SASL£º·Ö³ÉÁ½²¿·Ö
a)CyrusÏîÄ¿µÄSASL lib£¬PostfixʹÓÃSASLÐèÒªÓõ½µÄlib¡£
b)Cyrus-saslauthd£¬Ò»¸öSASLµÄÑéÖ¤ºǫ́³ÌÐò¡£
Cyrus-IMAPD£º
ÌṩIMAP·þÎñ£¬ÌṩÓʼþ¶ÁÈ¡ºÍ¹ÜÀíÓÊÏäµÄ×÷Óá£
cyradm£º
Õâ¸ö²»ÊÇÒ»¸ö¶ÀÁ¢µÄÈí¼þ£¬°²×°Cyrus-IMAPµÄʱºò»á×Ô¶¯°²×°ÉÏÈ¥µÄ¡£ËüµÄ×÷ÓÃÊÇ´´½¨ºÍ¹ÜÀíÓÊÏä¡£
PgSQL£ººǫ́Êý¾Ý¿â£¬´æ·ÅÓû§µÄÃÜÂëµÈµÈ¡£
×ܵÄÀ´½²£¬Postfix³äµ±×ªËÍÓʼþµÄ·þÎñ£»Cyrus-IMAP³äµ±ÌṩÓʼþ¶ÁÈ¡¡¢¹ÜÀíµÄ·þÎñ£»SASLʹÓÃÑéÖ¤·þÎñ¡£
4¡¢Cyrus-SASLºÍCyrus-IMAPD²»ÊÇͬһÑù¶«Î÷
¾Í¸úMicrosoft Visual C++ºÍMicrosoft Office²»ÊÇͬһ¸ö¶«Î÷Ò»Ñù
Ò»¡¢±¾ÏµÍ³µÄ¹¤×÷ÔÀíºÍ½á¹¹
×¢ÒâÊDZ¾ÏµÍ³¡£ÊµÏÖÒ»¸öÓʼþϵͳÓкܶàÖÖ·½Ê½£¬¼´Ê¹ÄãÓõͼÊǸú±¾ÏµÍ³ÍêȫһÑùµÄÈí¼þ£¬Ò²Óв»Í¬µÄʵÏÖ·½Ê½¡£
±¾ÏµÍ³µÄÓʼþÖ÷»úÊÇ:
f4.room
f4ÊÇÒòΪfbsd-4£¬ÓòΪroom£ºÊÇÒòΪµçÄÔ·ÅÔÚ·¿¼äÀïÍ·¡£ÄúÒª¿´²»Ë³ÑÛ£¬¾Í°Ñ±¾ÎĵÄf4.room¶¼»»³Éexample.comËãÁË¡£
I¡¢PostfixµÄµ£ÈεŤ×÷µÄ²¿·Ö£º
1¡¢Õâ¸öÊÇͶµÝÓʼþµÄʱºòµÄÓû§ÑéÖ¤µÄ²¿·Ö£º
|------------------------|
| Postfix |
| |
| |-------------| |
|-| Cy-SASL-lib |--------|
| |
|-------------|
|
|
|--------------|
| Cy-saslauthd |
|--------------|
|
|
|-------|
| PAM |
|-------|
|
|
|-----------------------|
| PostgreSQL |
|-----------------------|
ͼÀý˵Ã÷£º
µ±ÓгÌÐò·ÃÎÊsmtp·þÎñ(TCP¶Ë¿Ú 25)µÄʱºò£¬Postfix»á¸ø³ö220 ESMTPµÄ»ØÓ¦£¬ÌáʾÊÇÒªÑéÖ¤µÄsmtp·þÎñ¡£ÃÜÂëºÍÓû§ÃûÌá½»¸øPostfixÒÔºó£¬Postfix»á°ÑÃÜÂëºÍÓû§Ãûͨ¹ýµ÷ÓÃCy-SASL libÌá½»¸øÒ»¸öºǫ́ÑéÖ¤³ÌÐò£ºCy-saslauthd¡£Cy-saslauthd»áµ÷ÓÃPAMÄ£¿é½øÐÐÑéÖ¤¡£PAMÄ£¿é»áµ÷ÓÃÃûΪsmtpµÄPAM·þ ÎñÃû½øÐÐÑéÖ¤¡£ÔÚ±¾ÏµÍ³ÖУ¬PAM·þÎñÊǵ÷ÓÃpam_pgsql·ÃÎÊPostgreSQL½øÐÐÑéÖ¤µÄ¡£È»ºó½á¹ûÔÙReturn»ØÈ¥¡£
2¡¢ÓʼþתËÍ£º
·Ö³ÉÈýÖÖÇé¿ö£º
1)Èç¹ûÓʼþÊǸø·Ç±¾ÓòÓû§µÄ£¬ÀýÈçÊÇ21cn.comµÄ£¬ÂíÉϾÍת·¢¹ýÈ¥ÁË¡£
2)Èç¹ûÓʼþÊǸø±¾ÓòÐéÄâÓû§µÄ£¬PostfixÒª·ÃÎÊPgSQL£¬À´¿´¿´±¾ÓòÊÇ·ñÓÐÕâ¸öÐéÄâÓû§¡£ÓоÍת·¢µ½ËûµÄÐéÄâÓÊÏ䣬ûÓоͰÑÓʼþdeferedµô¡££¨Ê²Ã´ÊÇdefered£¿´ý²é£¬¹À¼ÆÊÇ¿³µôµÄÒâ˼£©
Postfix <--> PostgreSQL
3)Èç¹ûÊDZ¾ÓòµÄ±¾µØÓû§£¬¾Íת·¢µ½±¾µØÓû§µÄÓÊÏ䣬¾ÍÊÇ/var/mail/usernameÄÇÀï¡£
Postfix <--> /etc/passwd
II¡¢Cyrus-IMAPµ£ÈεŤ×÷²¿·Ö
1¡¢ÓʼþµÄ»ñÈ¡£º
Cyrus-
IMAPDÓÐËû×Ô¼ºµÄÒ»Ì×¹ÜÀíÓʼþµÄ·½·¨£¬²»ÊÇÓô«Í³µÄunixÓÊÏä·½·¨(/var/mail/username)£¬µ«ÊÇÓÊÏäµÄ¶Áȡʮ·Ö¸ßЧ¡£µ±
Postfix»ñµÃÄ¿µÄµØÊDZ¾ÓòµÄÐéÄâÓû§µÄʱºò£¬ÎÒÃÇÉèÖÃPostfixÄÚÖÃÖ§³ÖµÄÒ»¸ö¹¦ÄÜ£ºµ÷ÓÃCyrus-IMAPµÄÒ»¸ö³ÌÐò£¬½«Óʼþ¡°Äá±¹ýÀ´·Å
µ½ÓÉCyrus-IMAPD¹ÜÀíµÄÓÊÏäÀïÍ·¡£
2¡¢Óû§µÄÑéÖ¤¡£
µ±Óû§Òª¶ÁÈ¡×Ô¼ºµÄÓʼþµÄʱºò£¬ÒªÍ¨¹ýIMAP·þÎñ¡£±¾ÏµÍ³ÅäÖÃÁËCyrus-IMAPͨ¹ýCyrus-saslauthd½øÐÐÑéÖ¤¡£ÆäÔÀí´ó¸ÅͬPostfixÑéÖ¤Óû§µÄÔÀíÒ»Ñù¡£
|------------------------|
| Cyrus-IMAPD |
| |
| |-------------| |
|-| Cy-SASL-lib |--------|
| |
|-------------|
|
|
|--------------|
| Cy-saslauthd |
|--------------|
|
|
|-------|
| PAM |
|-------|
|
|
|-----------------------|
| PostgreSQL |
|-----------------------|
III¡¢PgSQL´æ´¢µÄÊý¾Ý
ÏÖÔÚ°ÑPgSQL´æ´¢µÄÊý¾ÝÔÙ×ܽáһϡ£
PgSQLÖ÷Òª´æ´¢Á½²¿·ÖÊý¾Ý£º
1)ÐéÄâÓû§µÄÓû§ÃûºÍÃÜÂë¡£Õⲿ·ÖÊÇÌṩÑéÖ¤Ó㬴Ósaslauthdͨ¹ýPAM·þÎñ·ÃÎÊ¡£
ID | usr | pass | expired | newtok
----+-------+-------+---------+--------
1 | test1 | pass1 | f | f
2 | test2 | pass2 | f | f
2)Óû§µÄµØÖ·ºÍ¶ÔÓ¦µÄÐÅÏä¡£Õⲿ·ÖÊÇPostfix·ÃÎʵ쬴ÓÖлñµÃÓʼþµØÖ·ºÍÓÊÏäµÄÓ³Éä¹ØÏµ£¬È»ºó¸ù¾ÝÓʼþµØÖ·×ª·¢µ½ÏàÓ¦µÄÓÊÏä¡£
ID | addr | boxÔÚ±¾ÏµÍ³ÖУ¬Êµ¼ÊÉÏÊÇÁ½¸ö±í£¬ÎªÁË·½±ã´ó¼Ò¿´£¬¾Í½«Ëû²ð·Ö³ÉÁ½¸ö±í¡£
----+----------------+------------
1 | test1@f4.room | test1
2 | test2@f4.room | test2
ÆäʵʹÓÃÁ½¸ö±íÀ´´æ´¢ÕâЩÊý¾ÝµÄ×ö·¨´Ó°²È«½Ç¶ÈÊÇ¿ÉÈ¡µÄ¡£ÎÒÃDZÈÈç˵ÎÒÃÇ·Ö±ð½¨Á¢Á½¸öÊý¾Ý¿âÓû§£ºpostfixºÍsaslauthd£¬ËûÃÇÖ»ÊǶÔ×Ô¼º¿ÉÒÔ·ÃÎʵıíÓжÁȨÏÞ¡£ÁíÍâÎÒÃÇÔÙ½¨Á¢Ò»¸öÊÓͼ£¬°ÑÁ½¸ö±í¹ØÁªÆðÀ´£¬³¬¼¶Óû§¶ÔÕâ¸öÊÓͼÓжÁȡʹÓõÄȨÏÞ£¬À´½øÐйÜÀí¡£
±¾ÎÄΪÁË·½±ãµ÷ÊÔ£¬Ö»Êǽ¨Á¢Ò»¸ö±í¡£
¶þ¡¢°²×°Èí¼þ
ÇëÎñ±ØÊ¹ÓÃportÀ´°²×°£¬ÒòΪÕâ²»½öÓ°Ïìµ½Äã±àÒë³É¹¦ÂÊ£¬¸üÓ°Ïìµ½ÒÔºóµÄÅäÖá£ÒòΪÄãÖ±½ÓÏÂÔØÔ´Âë°ü±àÒë°²×°µÄ·¾¶¿ÉÄܲ»Ò»Ñù
0.PostgreSQL
·¾¶/usr/ports/databases/postgresql7
make install
×¢Ò⣬Õâ¸ö·¾¶ÏµÄÊÇpgsql 7.3
1.Postfix:
·¾¶ /usr/ports/mail/postfix
make install£¬È»ºó»á³öÏÖÒ»¸ö±àÒëÑ¡ÏîµÄ²Ëµ¥£¬Ñ¡ÔñCyrus-SASL2ºÍPgSQLµÄÖ§³Ö¡£PgSQLµÄÖ§³Ö¿ÉÄÜÓÐÁ½ÖÖ£¬Ò»¸öÊÇ7.3£¬Ò»¸öÊÇ7.2£¬Çë¸ù¾ÝµÄPgSQL·þÎñÆ÷Ñ¡Ôñ¡£
2.Cyrus-SASL2:
ÓÉÓÚÉÏÃæ°²×°PostfixµÄʱºò£¬Ñ¡ÔñÁËCyrus-SASL2Ö§³Ö£¬±àÒëPostfixµÄʱºò£¬»á×Ô¶¯ÏÂÔØCyrus-SASL2½øÐбàÒë°²×°£¬ËùÒÔCyrus-SASL2²»ÐèÒª°²×°¡£
3. Cyrus-sasl-saslauthd
·¾¶£º/usr/ports/security/cyrus-sasl2-saslauthd/
make install
4. Cyrus-imapd-2.1.14
·¾¶£º/usr/ports/mail/cyrus-imapd2/
make install
Èý¡¢ÅäÖÃÈí¼þ
Áã¡¢ÅäÖÃPgSQLºÍpam·þÎñ
1¡¢½¨Á¢Ò»¸ö½Ð×ömailµÄÊý¾Ý¿â¡£
2¡¢½¨Á¢Ò»¸ö½Ð×ömailuserµÄ±í¡£
½á¹¹ÈçÏÂ
ID | usr | pass | expired | newtok | addr | box3¡¢ÔÚPgSQLÀïÍ·½¨Á¢Ò»¸öÊý¾Ý¿âÓû§mail£¬ÃÜÂëmail
----+-------+-------+---------+--------+---------------+--------
1 | test1 | pass1 | f | f | test1@f4.room | test1
2 | test2 | pass2 | f | f | test2@f4.room | test2
4¡¢´´½¨Ò»¸ö/etc/pam_pgsql.conf
database = mail
user = mail
password = mail
table = mailuser
user_column = usr
pwd_column = pass
expired_column = expired
newtok_column = newtok
ÔÚ/etc/pam.confÀïÍ·¼ÓÉÏÒÔϼ¸ÐС£
smtp password required pam_pgsql.so debug
smtp account required pam_pgsql.so debug
imap auth required pam_pgsql.so debug
imap password required pam_pgsql.so debug
imap account required pam_pgsql.so debug
×¢Ò⣬Èç¹ûµÄÊÇFreebsd-5ºÍlinux£¬ËûÃǵÄÅäÖÃÓв»Í¬£º
²»ÓÃÉèÖÃ/etc/pam.conf£¬¶øÊÇÔÚ/etc/pam.d/smtpºÍ/etc/pam.d/imapÀïÍ·¼ÓÉÏ
password required pam_pgsql.so debug
account required pam_pgsql.so debug
Part I¡¢ÅäÖÃPostfix + SASL
[Ä¿±ê]
I¡¢ÅäÖÃPostfix + SASLÑéÖ¤£¬²¢ÇÒ×齨һ¸öÐéÄâÓû§µÄ»·¾³¡£
±ÈÈç˵£ºuser@f4.room
user²¢²»ÊÇFreeBSDÉϵı¾µØÓû§£¬¶øÊÇÒ»¸öÐéÄâµÄÓû§¡£Óû§µÄÈÏÖ¤ÐÅÏ¢ÊÇ´æ´¢ÔÚÊý¾Ý¿âµÄ¡£
Áã¡¢ÓòÃûµÄ´¦Àí
ÏàÐźܶàÅóÓѸúÎÒÒ»Ñù£¬Ã»ÓÐÒ»¸öFQDN(Full Qualiefied Domain Name)¡£ËäȻûÓÐÓòÃû£¬ÎÒÃÇÈÔÈ»¿ÉÒÔÍæPostfix¡£
ÏÈÔÚ/etc/hostsÌí¼ÓÄãµÄÓòÃû¡£ÎÒµÄÓòÃûÉèÖÃΪf4.room£¬¶øÎÒµÄIPÊÇ192.168.1.10£¬ËùÒÔÎÒµÄÎļþÊÇÕâÑùµÄ£º
127.0.0.1 localhost localhost.my.domain
192.168.1.10 f4 f4.room
Ò»¡¢Postfix
ÒªPostfixÕý³£ÔËÐУ¬±ØÐëÏÈÒª°ÑSendmail½ûÓá£
/etc/rc.confÀïÍ·¼ÓÈëÒ»ÐÐ
ln -s /usr/local/sbin/postfix postfix.sh
¿´µ½freebsdµÄportµÄºÃ´¦ÁËÂð£¿Ëû¿ÉÒÔÈÃÄã±£ÁôÔÓеÄsendmail¡£
Postfix
Ò²ÓÐÒ»¸ö³ÌÐò½Ð×ösendmail¡£Èç¹ûÓÃÔ´Âë°²×°£¬»á°ÑPostfix°²×°ÔÚ/usr/sbinÀïÍ·£¬ÄÇô¾Í»á°Ñsendmail¸²¸ÇµôÁË¡£ÓÃPort
À´°²×°£¬Ëü»á×ñÊØfreebsdµÄhier(Ŀ¼½á¹¹)£¬½«Èí¼þ¶¼×°ÔÚ/usr/local/ÏÂÃæµÄsbin/,bin/,lib/,libexe/Ŀ¼
ÀïÍ·£¬²»»á¸úϵͳµÄ³åÍ»¡£
ÄÄÌìÄúÀÏÈ˼Ҳ»¸ßÐË£¬ÏëÍæÍæsendmail£¬ÏÈpkg_deleteÁËpostfix£¬È»ºóÐÞ¸Ä/etc/rc.conf£¬°Ñsendmail="NONE"¸Ä³É"YES"£¬¾Í¿É°ÑsendmailÇë»ØÀ´ÁË¡£
PostfixµÄÅäÖÃÎļþÔÚ/usr/local/etc/postfix/
1¡¢master.cf
¸ü¸ÄÒÔÏÂÁ½Ï
1)ËÑË÷smtpµÄÒ»ÐУ¬È»ºó¸ÄΪ
smtp inet n - n - - smtpd -v
2)ÐÞ¸ÄcyrusµÄ°²×°Â·¾¶
½«argv=.....Ò»Ïî¸ÄΪargv=/usr/local/cyrus/bin/deliver
½á¹ûÈçÏ£º
cyrus unix - n n - - pipe
user=cyrus argv=/usr/local/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#±¾µØÓû§µÄÉèÖÃ
myhostname = localhost
mydestination = $myhostname, localhost.$mydomain
local_transport = local
local_recipient_maps = unix:passwd.byname $alias_maps
#ÐéÄâÓû§·½ÃæµÄÉèÖÃ
virtual_transport = virtual #ÕâÀïÏÈʹÓÃvirtual´©ËÍÓʼþ£¬ÉÔºóÉèÖúÃimapÒÔºóÊÇʹÓÃcyrusÀ´×¥È¡ÐéÄâÓû§µÄÓʼþ
virtual_mailbox_base = /var/mail/vhost #ÉèÁ¢Ò»¸ö´æ·ÅÐéÄâÓû§µÄ·¾¶£¬ÉèÖúÃimap£¬¿ÉÒÔ²»ÐèÒª
virtual_mailbox_maps = pgsql:/usr/local/etc/postfix/pgsql-mailbox.cf #¸æËßpostfix£¬ÓÊÏäÒªÈçºÎÓ³Éä
virtual_mailbox_domains = f4.room #ÐéÄâÓÊÏäµÄÓò
virtual_minimum_uid = 100 #×îСºÏ·¨ÐéÄâÓû§ID
virtual_uid_maps = static:5000 #ÐéÄâÓû§UID
virtual_gid_maps = static:5000 #ÐéÄâÓû§×éGID
#ÉèÖÃʹÓÃsaslÑéÖ¤
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
3¡¢´´½¨Ò»¸öpgsql-mailbox.cf
user = mail
password = mail
dbname = mail
table = mailuser
select_field = box
where_field = addr
4¡¢½¨Á¢Ïà¹ØµÄĿ¼
È·±£ÄãÓÐrootȨÏÞŶ
cd /var/mail/vhost/
touch test1
touch test2
chowm 5000:5000 test1
chowm 5000:5000 test2
¶þ¡¢ÅäÖÃCyrus-SASL
pwcheck_method: saslauthd
mech_list: plain login
È»ºó×öÒ»¸öÁ¬½Ó
ln -s Sendmail.conf smtpd.conf
ºÃÏÖÔÚ×öÒ»¸ö²âÊÔ£º
ÏÈ»ñÈ¡plain×Ö·û´Ü¡£ÎªÁË»ñµÃplain×Ö·û´®£¬±ØÐëÒªÓÃbase64±àÂë¡£ÎÒ°²×°ÁËÒ»¸öperlµÄmodÀ´²úÉúÕâ¸öbase64±àÂë¡£
perl -MMIME::Base64 -e 'print encode_base64("test1\0test1\0pass1");'
ËûµÄportÔÚ/usr/ports/converters/p5-MIME-Base64/
²âÊÔ£º
Trying 192.168.1.10...
Connected to f4.
Escape character is '^]'.
220 localhost ESMTP Postfix
ehlo host
250-localhost
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250 8BITMIME
auth plain dGVzdDEAdGVzdDEAcGFzczE=
235 Authentication successful
×¢Ò⣬һ¶¨Òª´òehlo hostname£¬·ñÔò¾Í²»»á³öÏÂÃæµÄ¶«Î÷ÁË¡£
Èý¡¢µ÷ÊÔ·¢ÐŸøÐéÄâÓû§
Subject: a test
test
.
EOT
ËÄ¡¢Ò»¸öССµÄBug
Ê×ÏÈÉùÃ÷£¬Õâ¸öBug²»ÊÇpostfixµÄ£¬Ó¦¸ÃÊÇÎÒµÄÅäÖõġ£
²»ÖªµÀΪʲô£¬¸ù¾ÝÒÔÉϵÄÉèÖã¬ÔÚ±¾»úÉÏдПø±¾µØÓû§£¬ÀýÈçpowerplane£¬µØÖ·±ØÐëÊÇ£º
powerplane@localhost.my.domain¡£
ÆäËûµØÖ·£¬È磺powerplane@localhost£¬Ëû»áµ±°Ñpowerplane@f4.room´¦Àí¡£
¹À¼ÆÊÇmain.cfºÍ/etc/hostsÉÏûÓÐÅäÖúá£ÄÄλ¸ßÈË£¬ÇëÖ¸µãһϣ¿
Part II¡¢ÅäÖÃCyrus-IMAP
1¡¢±à¼/usr/local/etc/imapd.conf£¬Õâ¸öÊÇCyrus-IMAPµÄÅäÖÃÎļþ
ÄÚÈÝÓ¦¸ÃÈçÏ£º
configdirectory: /var/imap
partition-default: /var/spool/imap
sieveusehomedir: false
sievedir: /var/imap/sieve
sasl_pwcheck_method: saslauthd #ʹÓÃsaslauthdÀ´½øÐÐÑéÖ¤
admins: cyrus #ÓÃcyrusÓû§À´¹ÜÀíÓÊÏ䣬עÒ⣬Õâ¸ö²»ÊDZ¾µØÓû§¡£¶øÊÇCyradm¹ÜÀíÄ£¿éµÄ¹ÜÀíÔ±¡£¸ÃÓû§ÐÅÏ¢´æ·ÅÔÚ/usr/local/etc/sasldb2ÀïÍ·
2¡¢ÔËÐÐ/usr/local/cyrus/bin/mkimap¡£
Ëû»á×Ô¶¯¶ÁÈ¡/usr/local/etc/imapd.conf£¬×Ô¶¯´´½¨/var/imap£¬/var/spool/imapµÈµÈËùÐèÒªµÄĿ¼µÄ¡£
3¡¢Æô¶¯Cyrus-IMAPD¡£
ʹÓÃPortÀ´°²×°Cyrus-IMAP£¬Ëü»áÔÚ/usr/local/etc/rc.d´´½¨Ò»¸öÆô¶¯½Å±¾µÄ£¬Ãû×ÖΪ£ºimapd.sh.sample¡£ÄãÒª°ÑËü¸ÄÃûΪimapd.sh£¬ÔÚÆô¶¯ÏµÍ³Ê±ºóËû²Å»á×Ô¶¯Ö´ÐС£Èç¹ûËüûÓÐÔËÐУ¬ÄãÒ²¿ÉÈ˹¤Æô¶¯Ëü£º
/usr/local/etc/rc.d/imapd.sh start
4¡¢½¨Á¢CyradmÄ£¿éµÄÐèÒªµÄÓû§Êý¾Ý¿â£ºsasldb2¡£
1)´´½¨sasldb2Êý¾Ý¿â£¬²¢ÇÒ´´½¨¹ÜÀíÔ±cyrus¡£
cd /usr/local/etc
saslpasswd2 -c cyrus
Password:cyrus
Again(for verification):cyrus
chown cyrus:mail sasldb2
Cyrus-IMAPÊÇ×Ô¼º¹ÜÀíÓÊÏ䣬´´½¨ÓÊÏ䱨Ðëͨ¹ýcyradmÀ´´´½¨¡£
ÏÂÃæÍ¨¹ýcyradm¹¤¾ßÀ´´´½¨ÓÊÏä¡£
cyradm --user cyrus localhost ÊÇÓÃcyrusÓû§£¬µÇ½µ½Ö÷»úlocalhost¡£
cmÊÇ´´½¨ÓÊÏä
lmÊÇÁгöÓÊÏä
> cyradm --user cyrus localhost
Password:
localhost> cm user.test1
localhost> cm user.test2
localhost> lm
user.test1 (\HasNoChildren) user.test2 (\HasNoChildren)
localhost> quit
ʹÓÃimtestÀ´²âÊÔ
S: * OK F4 Cyrus IMAP4 v2.1.15 server ready
C: C01 CAPABILITY
S:
* CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS
NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND
SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=NTLM AUTH=OTP
AUTH=DIGEST-MD5 AUTH=CRAM-MD5
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN test1 {4}
S: + go ahead
C: <omitted>
S: L01 OK User logged in
Authenticated.
Security strength factor: 0
. logout
* BYE LOGOUT received
. OK Completed
Connection closed.
Part III¡¢ÕûºÏPostfixºÍCyrus-IMAP
ÄãÇ°ÃæµÄÉèÖú͵÷ÊÔ¶¼Ë³Àûͨ¹ýÁËÂ𣿺õ½ÕâÒ»²½ÁË£¬Ö»ÐèÒª¸ÄÒ»¸öÎļþ¡£
virtual_transport = cyrus #ÕâÀïµÄcyrusÊǶÔÓ¦»Ømaster.cfÀïÍ·´«ËÍÓÊÏäÏî¡£
ºÃ¸Ï¿ì²âÊÔһϰÉ
Subject: final test
haha
.
EOT
ÔÛÃÇÓÃÒ»¸öÖ§³ÖIMAPµÄ¿Í»§¶ËÊÕÐŰɣ¬ÊÔÊÔÄܲ»Äܳɹ¦£¿Óû§ÃûÓÃtest1£¬ÃÜÂëÊÇpass1¡£
×ܽá
Èç¹ûʹÓÃportµÄʱºò£¬ÓÐʲô²»Ã÷°×£¬²»¶®µÄʱºò£¬¿ÉÒԲο¼¾ßÌåÈí¼þµÄportĿ¼ÀïÍ·µÄpkg-message£¬ÀïÍ·ÓйØÓÚ¸ÃÈí¼þµÄһЩ¼òµ¥ËµÃ÷ºÍÅäÖᣵ±È»²»ÊÇÿ¸öport¶¼Óеġ£
ÎҵĽ¨ÒéÊÇ£º²»ÒªÆÚ´ýһƪHOW-TO¾ÍÈÃÄãÃ÷°×ËùÓж«Î÷£¬Ä㻹ÊÇÒª×÷×÷¹¦¿ÎµÄ¡£
ÏÂÃæÌṩһЩÎĵµ×÷Ϊ²Î¿¼£¬ÓÐЩÎĵµÊÇÔÚÄã°²×°portÒÔºó£¬ÔÚ±¾»úÉϵ쬵±È»ÔÚÔ´Âë°ü¿Ï¶¨Ò²ÓС£
PostfixµÄvirtual domainsÈëÃÅ£º
http://www.freebsddiary.org/postfix.php
PostfixµÄÐéÄâÓû§ÉèÖãº
/usr/local/share/doc/postfix/VIRTUAL_README
PostfixµÄһЩ¹Ù·½Îĵµ£¬½ÌÄãÈçºÎ¸úCyrus-SASL2ºÍCyrus-IMAP2ÕûºÏ£º
http://www.postfix.org/docs.html
FreeBSDÉÏÃæµÄPAMÅäÖãº
http://www.freebsd.org/doc/en_US.ISO8859-1.../pam/index.html
ÏÂÃæµÄÊÇLinuxΪĿ±êϵͳµÄ£¬ÎÒÒ²²Î¿¼¹ý¡£Èç¹ûÄú×ÐϸÔĶÁ¹ýËûÃǺͱ¾ÎÄ£¬¾ÍÃ÷°×FreeBSDµÄhierºÍPortϵͳµÄºÃ´¦¡£
Postfix-Cyrus-Web-cyradm-HOWTO£º
http://www.delouw.ch/linux/Postfix-Cyrus-W...html/index.html
Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMPµÄÖÐÎÄHOWTO
http://www.cngnu.org/technology/Postfix_I.html

