- 論壇徽章:
- 1
|
那些想要為他們的EMAIL使用以上組合的用戶,我歸納了一些安裝經(jīng)驗來為他們提供某些幫助。我剛得到了一些新的關于LINUX管理信息,所以決定更新這期MINI-HOWTO。
1.介紹
什么是QMAIL?我們該怎樣正確使用它?以下將給出一些解釋說明。
QMAIL是一個安全、可靠、高效、簡潔的信息傳送的代理。它現(xiàn)在完全替代了典型互聯(lián)網(wǎng)上以unix作為平臺的主機上發(fā)送-接收的系統(tǒng)。
安全:安全不僅僅是一個目標,而且無疑是一個需要。用戶對發(fā)送郵件的要求很高;它不能出一點差錯,所以必須絕對安全可靠。(這就是我為什么開始使用QMAIL:我對其他的郵件發(fā)送系統(tǒng)的諸多安全漏洞感到非常不安。)
可靠:QMAIL采用“straight-paper-path”的設計“哲理”, 保證了一個信息一旦被系統(tǒng)接收,就永不丟失。QMAIL也支持MAILDIR功能,一個全新的、超穩(wěn)定的用戶郵箱格式。MAILDIRS,不像MBOX文件和MH文件夾在接收郵件時,如果系統(tǒng)出錯會導致接收中斷。更好的是,用戶不僅可以安全的在NFS(網(wǎng)絡文件系統(tǒng))上讀取他的郵件,而且與此同時,任何其他NFS的客戶端也可以向他發(fā)送郵件。
高效:在一個BSD/OS的PENTIUM機上,QMIAL每天可以輕易地支持200000的本地信息----分開處理郵箱中信息的發(fā)送與接收!雖然DNS(域名服務器)和SMTP的遠程發(fā)送原本就有速度慢的局限性,qmail可以在默認狀態(tài)下同時發(fā)送20封郵件,所以相比下它能風馳電掣地快速通過郵件列表。(這就是我為什么使用QMAIL,我必須建立龐大的郵件列表。)
簡潔:QMAIL比其他任何互聯(lián)網(wǎng)的MTA占用的空間都要小得多。這是因為:(1) 其他的MTA系統(tǒng)采用單獨解析、匿名和郵件列表的機制。而QMAIL采用一個簡化了的解析機制,它允許用戶處理他們自己的郵件列表。(2) 其他的MTA是這樣的發(fā)送模式:或者快速+不安全,或者緩慢+隊列。而QMAIL,在隊列中一旦有新消息的出現(xiàn),就立即發(fā)送,所以QMAIL的發(fā)送模式只能是:快速+隊列。(3) 其他MTA系統(tǒng)實際上包含了一個特別的inetd的版本,它能減少機器的負荷。而QMAIL的設計根本上減少了機器的負荷,因此QMAIL發(fā)送系統(tǒng)能在您的機器上安全運行。
替代SENDMAIL的發(fā)送郵件:QMAIL支持主機和用戶的匿名、完全隱藏主機、虛擬域名、無效客戶、擁有者列表的重寫、終繼控制、可恢復的雙重記錄、嚴格的RFC 822地址列表、交叉主機郵件列表的循環(huán)偵測、每個接受端的檢查點、出故障主機的備份恢復、獨立進行信息的重試調度、等等等等。簡而言之,它在現(xiàn)代MTA中以快速的特點一枝獨秀。QMAIL也包括可以透明地面對眾多用戶的發(fā)件箱。
2.我的系統(tǒng)情況
SuSE Linux Distribution 5.1 with 2.0.33 kernal.用端對端協(xié)議(ppp)連接到互聯(lián)網(wǎng)服務提供商(ISP)。
3.QMAIL的安裝
正確依照安裝說明的步驟。
注意:請花時間完整地閱讀安裝說明文件。在以上安裝文件中有表示安裝步驟的數(shù)字。
2.-我必須手動設置組和用戶作為每個INSTALL.ids
7.-./qmail-makectl不能在我的系統(tǒng)上運行。我在/var/qmail/control/me中手動地加入了我的域名(mickey.n.eunet.de)
23.-確定qmail-smtpd在inetd-conf文件中的正確拼寫。(我把qmail-smtpd拼寫成qmail-smptd,導致了花了我兩天時間去找:
( ) smtp stream tcp nowait qmaild/var/qmail/bin/tcp-env tcp-env/var/qmail/bin/qmail-smtpd
3.1 Maildir2smtp
Dan Bernstein已經(jīng)提供了通過撥號向ISP發(fā)送一系列郵件的程序包。這個程序包用來作為從它的站點發(fā)送的系列郵件。
這個程序包安裝在此人(感謝Rupert Mazzucco(maz@pap.univie.ac.at))網(wǎng)頁詳細闡述,maildir2smtp - 通過SMTP發(fā)送一個maildir。maildir2smtp是設計用來在一個SLIP或者PPP鏈路上傳遞報文的。為了在無連接的終端建立maildir2smtp,用匿名創(chuàng)建一個新的maildir:
# maildirmake ~alias/pppdir
# chown -R alias ~alias/pppdir
把
:alias-ppp
加入
control/virtualdomains
把
./pppdir/
加入
~alias/.qmail-ppp-default
不要忘了在pppdir/中附加的刪減。然后,在PPP開始文本中,作如下操作:
maildir2smtp ~alias/pppdir alias-ppp- $IP `hostname`
把$IP替換為遠端IP地址。
注意:請完整地閱讀正確操作的說明書。
Maildir2smtp需要你郵件服務器的IP地址。如果你沒有這個IP地址,你可以檢測YourMail.host.country來返回你郵件服務器的IP地址。
這個命令包含在你的登陸文本中,在你登陸到你的互聯(lián)網(wǎng)服務提供商ISP后,刷新所有隊列郵件。
4.MH的安裝
除了這種設置外,我也把/mh-6.8.4/mts/sendmail/smail.c替換為Dan Bernsteins mh-qmail-smail.c。
以下是我的mh-6.8.4/conf/MH設置。
______________________________________________________________________
bin /usr/bin/mh
etc /usr/lib/mh
#mail
#mandir /usr/man
#manuals standard
chown /bin/chown
#cp cp
#ln ln
#remove mv -f
cc gcc
ccoptions -traditional -O2 -m486 -D_NFILE='getdtablesize()'
-DSIGEMT=SIGUSR1
curses -lncurses
#ldoptions -s
#ldoptlibs
lex flex
#oldload off
#ranlib on
mts sendmail
#mf off
#bboards off
#bbdelivery off
#bbhome /usr/spool/bboards
pop on
popdir /usr/lib/mh
sharedlib sys5
slflags -fPIC
slibdir /usr/lib
mailgroup mail
signal void
sprintf int
#editor prompter
#debug off
#regtest off
options ATHENA
options BIND
options DPOP
options DUMB
options FCNTL
options MHE
options MHRC
options MIME
options MORE='"/usr/bin/less"'
options OVERHEAD
options POP2
options POPSERVICE='"pop3"'
options RENAME
options RPATHS
options RPOP
options SOCKETS
options SVR4
options SYS5
options SYS5DIR
options TERMINFO
options UNISTD
options VSPRINTF
______________________________________________________________________
注意:
我只編譯了在comp.mail.mh中的``mts sendmail'',其中/smtp 會引起一些問題。Dominic Mitchell(hdm@demon.net)在comp.mail.mh (13 June 1997)中寫道:“用這個選擇,MH仍然可以通過一個管道,而不是網(wǎng)絡用SMTP通話。你確實需要在你的/.mh_profile加入一行:
postproc: /usr/local/nmh/lib/spost
或者無論以什么方式存在于你的系統(tǒng)上,它都將以傳統(tǒng)方式把報文直接傳送到sendmail,你確實在使用QMAIL,因此sendmail將成為QMAIL的包文本,這就可以了。”
4.1 mtstailor
因為QMAIL發(fā)送又見到默認目錄(~/Mailbox)。我把下列設置加入到我的mtstailor。
localname: mickey
localdomain: n.eunet.de
mmdfldir:
mmdflfil: Mailbox
uucpldir:
uucplfil:
mmdelim1: 01010101
mmdelim2: 01010101
mmailid: 0
umincproc:
lockldir:
sendmail: /usr/lib/sendmail
注意:sendmail: /usr/lib/sendmail是連接到在/var/qmail/bin中的QMAIL SENDMAIL包的路徑。
MH不像音標符號(~/),而是使用/home或者根據(jù)文本默認的$HOME置空格。
我最近在辦公室里的一臺連接到以太網(wǎng)電腦上安裝了MH和QMAIL。我在mtstailor里加入了以下一行:
servers: mailserver.company.country
4.2 mh_profile
以下是我的.mh_profile設置
Path: Mail
draft-folder: drafts
unseen-sequence: unseen
AliasFile: /home/rdn/.mh_aliases
send: -msgid
comp: -form /home/rdn/.mymh-components
MailDrop: /home/rdn/Mailbox
注意:我加入“收件箱”一行,為了保證郵件的接收.
5.Fetchmail
由于用戶很多(我的整個家庭),所以我決定使用fetchmail。Linux 和 fetchmail把mail發(fā)送到接收 qmail的smtp port。
安裝應該沒什么問題,按以下步驟便行。
fetchmailrc:
poll PersonalMail.Germany.EU.net
protocol pop3
username myname
password mypassword
# the next two lines do the trick for multidrop
localdomains mydomain.de
is * here
# T2 of the fetchmail FAQ states that qmail needs this
forcecr
6.exmh
這是我選擇的mailer。我很喜歡它。
只存在一個麻煩----大多數(shù)的高級匯編TCL/TK包裹編譯了安全條款。而隨著SuSE的出現(xiàn),xserverrc在確保安全的前提下解決了這個麻煩。
____________________________________________________________________
#!/bin/sh
#
# move this file to ~/.xserverrc, if you don't want to allow everybody to
# get access to your X-Server
#
if [ -x /usr/bin/keygen ]; then
if [ ! -x /usr/bin/hostname -a ! -x /bin/hostname
-a ! -x /usr/bsd/hostname ];
then
echo "startx: can't get my hostname - exiting"
exit 1
else
host=`hostname`
fi
xauth add $host:0 . `/usr/bin/keygen`
sleep 2
xauth add $host/"unix":0 . `/usr/bin/keygen`
exec X :0 -auth .Xauthority $*
else
exec X :0 $*
fi
______________________________________________________________________
7.Procmail
qmail FAQ 有以下要求:
In /.qmail add the line
| preline procmail
3.11per7 的版本改變了默認郵箱的一些內容。它以前在config.h文件中,而現(xiàn)在在src/authenticate.c文件中:
#define MAILSPOOLHOME "/Mailbox" /* watch the leading / */
/* delivers to $HOME/Mailbox */
我精簡合并了一些comp.mail.mh 和 comp.mail.misc的內容放在procmailrc 文件中,感謝各位提出寶貴意見!
#這是為新手準備的SAMPLE.PROCMAILRC 文件
#由Catherine Hampton(ariel@best.com)編寫
#版本1.1
#更新日期1/25/98
#
#向公眾免費發(fā)放
#
#
#SET VARIABLES
#Internal Variables
#以下經(jīng)rdn 于19980303修改
#有關人士稱SHELL的工作環(huán)境是高效率的
SHELL=/bin/sh (Shell用來運行procmail。確信你的系統(tǒng)已經(jīng)備份。不要用其他的shell替換除非你對UNIX了如指掌。)
LINEBRF=4096 (用來不讓Procmail在長時間運行后或在處理特殊郵件時出現(xiàn)窒息現(xiàn)象。)
PATH=$HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/mh:/usr/lib/mh: (你程序的路徑----這一項空缺可能最好)
VERBOSE=off (如果你選“on”,那么Procmail 將對所執(zhí)行的每一步都檢測錯誤。注意,不要選擇“on”,因為它會生成一個很龐大的檢測文件。)
#默認程序和文件定位
MAILDIR=$HOME/Mail (你最好確信這個目錄存在。)
DEFAULT=$HOME/Mailbox (Best Internet上的默認情況是2-5個shell郵箱的使用者。個人可以按自身的不同為系統(tǒng)選擇正確的設置。)
LOGFILE=$MAILDIR/procmail.log (檢測信息的處理,推薦照此設定----否則出錯信息會mail給你。)
FORMAIL=/usr/bin/formail (非常有用的自動回復技巧。如果你不在Best Internet上,更改formail系統(tǒng)拷貝上的此項信息自動回復郵件。)
SENDMAIL=/usr/sbin/sendmail (非常有用的自動回復技巧。如果你不在Best Internet上,更改sendmail系統(tǒng)拷貝上的此項信息自動回復郵件。)
Procmail 是一個非常優(yōu)秀的文檔程序。請無比仔細閱讀以上內容作為參考來設置你的procmailrc文件。
8.ISDN
盡管此項看似與與qmail或mh有關,我還是整理了。因為若你的ISP沒有PPP線就根本無email可言。我在使用我的ISDN中遇到了相當大的麻煩。SusE包含一個專門為ISDN準備的部分,但我想更簡單些。以下材料是由Bernhard Hailer更新的。
以下的的rc.config文件裝載了初始化的必要組元。
#!/bin/bash
# This is adapted Bernhard Hailer's old script
LOCAL_NUMBER="91311234" # tel no. 091311234
REMOTE_NUMBER="0911123456" # ISP tel no.
LOCAL_IP="192.168.0.99" # I have dynamic IP so this will do
REMOTE_IP="195.112.123.11" # your ISP's gateway
DEVICE="ippp0"
SYSPATH="/sbin"
ISDNCTRL="$SYSPATH/isdnctrl"
case "$1" in
start)
# turn on isdn
insmod /lib/modules/2.0.33/net/slhc.o
insmod /lib/modules/2.0.33/misc/isdn.o
sleep 1
# load the hisax module
insmod /lib/modules/2.0.33/misc/hisax.o
id=Tel0 type=5 protocol=2 irq=10 io=0x300
echo "starting isdn4linux"
# global
$ISDNCTRL verbose 0
$ISDNCTRL addif $DEVICE # create new interface
$ISDNCTRL addphone $DEVICE in $REMOTE_NUMBER
$ISDNCTRL addphone $DEVICE out $REMOTE_NUMBER
$ISDNCTRL eaz $DEVICE $LOCAL_NUMBER
$ISDNCTRL l2_prot $DEVICE hdlc
$ISDNCTRL l3_prot $DEVICE trans
$ISDNCTRL encap $DEVICE syncppp
$ISDNCTRL huptimeout $DEVICE 300
$ISDNCTRL chargehup $DEVICE off
$ISDNCTRL secure $DEVICE on
$SYSPATH/ifconfig $DEVICE $LOCAL_IP pointopoint $REMOTE_IP metric 1
$SYSPATH/route add default $DEVICE
$SYSPATH/ipppd /dev/ippp0 file /etc/ppp/options.ipppd &
$SYSPATH/route del default
;;
stop)
#turn off isdn
rmmod hisax.o
sleep 1
rmmod isdn.o
rmmod slhc.o
echo "Shutting down isdn4linux"
$ISDNCTRL delif ippp0
;;
*)
echo "Usage: $0 (start|stop)"
exit 1
;;
esac
我用以下技巧撥號,它被稱為簡潔的isdn on|off
#!/bin/bash
# This is based on an old script from Bernhard Hailer
IP_ADDRESS="195.112.123.11"
case "$1" in
on)
echo "Calling ippp0"
/sbin/isdnctrl dial ippp0
# the sleep is important as it gives the PPP time to settle down
echo "Sleep for 8s for PPP handshake"
sleep 8s
/sbin/route add default ippp0
echo "line open - checking...."
# check whether PPP negotiation was successful:
set `ping -qc3 -i1 $IP_ADDRESS 2>;/dev/null | grep transmitted`
if [ $4 -gt 0 ];
then
echo "succeeded."
echo "Starting fetchmail daemon"
/usr/bin/fetchmail -d 600 -k -v -a -L /var/log/fetchmail
echo "Flushing mail queue...."
/usr/local/bin/serialmail/maildir2smtp
~alias/pppdir alias-ppp- mail.server.ip.no `hostname`
else
echo "failed!"
/sbin/isdnctrl hangup ippp0
fi
;;
off)
echo -n "Shutting down fetchmail daemon"
/usr/bin/fetchmail --quit
/sbin/isdnctrl hangup ippp0
/sbin/route del default # and delete route
echo "You're off line"
;;
*)
echo -e "aUsage:"
echo "isdn on"
echo "isdn off"
;;
esac
接下來的是 ipppd選項文件/etc/ppp/options.ipppd
#基于:
#Klaus Franken,kfr@srse.de
#版本:27。08。97 (5。1)
#
#該文件由YaST在/etc/ppp/ioptions.YaST 拷貝至optiongs.<device>;
user“myrserid”
#我的系統(tǒng)名(只在CHAP上使用!)
# name my_system_name
#從peer處得到IP地址
ipcp-accept-local
ipcp-accept-remote
noipdefault
#試著從interface處得到IP地址
#ipppd的特定選項(比如與pppd的沖突)
#只能使用靜態(tài)IP
#useifip
#把所有的header-compression都設為disable
-vj
-vjccomp
-ac
-pc
-bsdcomp
#有時你需要這個:
#noccp
#最大接受數(shù)
mru 1524
#最大傳送數(shù)
mtu 1500
#如果你的機器是服務器,就要求簽證以下未注釋的條項。然而,如果你的機器是客戶機,做了以上的事就不會成功連接。ㄐ畔⑻崾尽皃eer refused to authenticate”即peer 拒絕簽證)所以,只有在服務器上對于未注釋的部分做以下步驟:
# "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!!
#+pap
#+chap
#如果你對handshaking有什么問題(比如第一次lcp-package沒響應)可以試試減少重試次數(shù),默認情況下是3 sec,試試2 sec:
# lcp-restart 2
9.源文件
請求包裹:
互聯(lián)網(wǎng)是如此高速發(fā)展,以至于提供源文件變得毫無意義。但在某些時候它是有價值的:
Qmail的相關內容 http://www.qmail.org/
NH的相關內容 http://www.ics.uci.edu/~mh/
glimpse的相關內容 http://glimpse.cs.arizona.edu/
Fetchmail的相關內容 http://sagan.earthspace.net/~esr/fetchmail
Exmh的相關內容 http://www.beedub.com/exmh
Procmail的相關內容 ftp.informatik.rwth-aachen.de/pub/packages/promail
|
|