郵件服務是用戶所需要的最重要的網絡服務。Web的通信量很大,但郵件主要用於個人之間的通信,而人-人的通信是商務的基礎。沒有郵件服務的網絡是不完整的網絡。換句話說,如果不能給用戶提供完整的TCP/IP下的郵件支持,這樣的網絡操作系統也不值得信賴。
配置sendmail是一件大而復雜的工作,但也不完全都是這樣,與其他一些網絡服務器系統只安裝SMTP服務器軟件的情況相比,Linux已經配置好了多數的設置。在多數系統下,缺省配置都能良好的運行。我將在本章中給出一些配置的建議,主要的一些配置參數建議大家不要隨意更改。
1.2 所需資源
1.2.1 所需包
RedHat6.2 服務器安裝
1.2.2 所需配置文件
/etc/sendmail.cf 系統自帶,管理員配置
/etc/sendmail.cw 系統自帶,管理員配置
1.3 配置方案
/etc/sendmail.cf
說明:sendmail主配置文件
控制sendmail運行時的配置。完整的sendmail配置應該包括7部分:
Local Info(本地信息):這部分定義了本地主機的信息
Options(選項):用來設置定義sendmail環境的選項。
Message Precedence(消息的優先級):sendmail消息優先級
Trusted Users(信任用戶):定義發送郵件時允許改變發送地址的用戶
Format of Headers(頭格式):定義在sendmail中插入的郵件頭信息
Rewriting Rules(改寫規則):這部分保存著改寫郵件地址命令使用該命令可以將郵件地址從用戶郵件程序的地址形式改寫為郵件發送程序所需要的地址形式。
Mailer Definition(郵寄者說明):定義發送郵件的程序,改寫規則是郵件者使用的規則,在本部分定義。
源文件:
V8/Berkeley
Cwlocalhost
Fw /etc/sendmail.cw
CP.
DYuunet.uu.net
CPUUCP
DS mail.weboa.com.cn
CO @ % !
C..
C[[
Kmailertable hash -o /etc/mail/mailertable
#制作db庫
Kdomaintable hash -o /etc/mail/domaintable
Kgenerics hash -o /etc/mail/genericstable
Kvirtuser hash -o /etc/mail/virtusertable
Kaccess hash -o /etc/mail/access
Kmxserved bestmx -z: -T
Kresolve host -a -T
FR-o /etc/mail/relay-domains
DR
DH
Kdequote dequote
CM root
DM mail.weboa.com.cn
#設置郵件服務器名稱
DnMAILER-DAEMON
CPREDIRECT
DZ8.9.3
O SevenBitInput=False
O EightBitMode=pass8
O AliasWait=10
O AliasFile=/etc/mail/aliases,/etc/mail/majordomo
O MinFreeBlocks=100
#規定最小空閒塊
O MaxMessageSize=1000000
#指定用戶一次最大發送的郵件大小
O BlankSub=.
O HoldExpensive=False
O DeliveryMode=background
O AutoRebuildAliases=true
O TempFileMode=0600
O HelpFile=/etc/mail/sendmail.hf
O SendMimeErrors=True
O ForwardPath=$z/.forward.$w:$z/.forward
O ConnectionCacheSize=2
O ConnectionCacheTimeout=5m
O UseErrorsTo=False
O LogLevel=9
#記錄到日志文件的事件等級
O CheckAliases=False
O OldStyleHeaders=True
O PrivacyOptions=authwarnings,noexpn,novrfy
O QueueDirectory=/var/spool/mqueue
O Timeout.queuereturn=4d
O Timeout.queuewarn=4h
O SuperSafe=True
O StatusFile=/var/log/sendmail.st
O DefaultUser=8:12
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
O UnixFromLine=From $g $d
O OperatorChars=.:%@!^/[]+
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
Ft -o /etc/mail/sendmail.ct
Troot
Tdaemon
Tuucp
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
#以上是Linux默認的選項,不允許客戶機使用mail服務器收發郵件,如果允許客戶機收發的話應將上邊一句話改成
R$- $@ok
#注意:中間是兩個tab鍵
#一下是郵件頭信息
H?P?Return-Path:
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x $|$g$.
H?F?From: $?x$x $|$g$.
H?x?Full-Name: $x
H?M?Resent-Message-Id:
H?M?Message-Id: $t.$i@$j
#以上是郵件頭信息
管理員需要執行touch /etc/mail/aliases 和 touch /etc/mail/majordomo來創建兩個文件,然後重新啟動sendmail,利用sendmail.cf裡生成db庫的配置來生成兩個庫文件:aliases.db和majordomo.db;當然,管理員也可以通過執行makemap hash mailertable < mailertable來生成新的db,這樣可以不重新啟動。
1.4 測試及管理辦法
1.4.1 測試方法
管理員可以通過執行/etc/rc.d/init.d/sendmail restart來使更改的配置生效。
管理員通過執行 fetchmail -u yourname yourserver 來為沒有郵件用戶制定他們的口令,用戶需要在客戶端作相應的設置。
管理員應該打開pop3服務,即更改配置文件
管理員在服務器上可以通過執行 echo test | /usr/sbin/sendmail \ - v [email protected]來測試建立好的郵件用戶是否能夠正常工作。
1.5 小結
其實我們只要設置其中的幾個地方就可以實現mail服務器的功能,這是因為sendmail有很強的適用性,並且它是在不斷更新的。所以現在提供給我們的sendmail的配置方案已經經過實踐檢驗,不需要管理員做太大改動,就可以實現強大的sendmail功能。