linux服務器配置實例<11>---配置郵件服務器

配置郵件服務器

.郵件系統的基本原理
1. 簡介 : 通常狀況下,咱們把電子郵件程序分解成用戶代理,傳輸代理和投遞代理。 用戶代理將用戶的信件傳送至傳輸代理(如 Outlook Express FoxMail 等)。郵件傳輸代理負責將郵件送到目標主機(如 sendmail )。而投遞代理則從信件傳輸代理取得信件傳送至最終用戶的郵箱(如 procmail )。
2. 電子郵件系統的優勢 : 能夠在很短期內把數據發送到目的地,發送和接收電子郵件的過程不會被中斷,隨時發送和接收電子郵件
3. 電子郵件系統 :
電子由件地址 和電子郵箱
[email]mailbox@abc.com[/email] 發送方使用第二部分來選擇目的地,接收方使用第一部分來選擇指定郵箱
4. 電子郵件格式 :
信封和內容 ( 報頭,郵件格式所規定的必要的部分;報文分爲信件內容和附件部分 )
MUA Mail User Agent, 將郵件發往 Internet 上的一個 ISP ,它具備撰寫郵件、顯示郵件、處理郵件的功能
MTA Mail Transfer Agent, 它負責郵件的存儲和轉發 (store and Forward)
5. 電子郵件系統的工做原理
咱們來模擬一封郵件從發出到收到的過程。用戶使用 Outlook Express (用戶代理或叫作郵件客戶端)向 Sendmail (傳輸代理)請求發送電子郵件的服務,將郵件交給 Sendmail Sendmail 根據郵件的目的地址,將郵件發送給郵件接收服務器,郵件接收服務器將郵件緩存(這也是 Sendmail 的工做)。接收郵件的用戶用 Outlook Express 向郵件接收服務器發出取信的請求,郵件接收服務器將郵件發送給用戶(這是 IMAP POP 服務的工做)。至此,一封郵件從發送者的機器到達接收者的機器。
咱們要創建的郵件服務器,以 Sendmail 做郵件傳輸服務, IMAP 做收信服務來構成郵件系統的基本框架。以 Horde Imp 做爲郵件的 Web 客戶端。剩下的就是 Horde Imp 的支持軟件:以 MySQL 存儲用戶數據,以 Apache+PHP 做爲 Web 服務器。咱們還使用其它的模塊來擴充本系統的功能:通信錄模塊和修改密碼模塊。
. 與電子郵件相關的協議
1.SMTP:Simple Message Transfer Protocol RFC821 定義, SMTP 主機規定基礎的電子郵件提交系統怎麼傳遞報文 . MUA MTA 創建鏈接併發送郵件和 MTA 之間使用 SMTP 進行電子郵件的轉發時使用 SMTP 協議
SMTP 的通訊過程
2. 多用途互聯網郵件擴充 MIME,Multipurpose Internet Mail Extension IETF 爲發送二進制數據而發明的多種編碼方案,它容許發送方和接收方選擇方便的編碼方法,發送方在頭部包含一些附加行說明信息遵循 MIME 格式,以及在主體中增長一些附加行說明數據類型和編碼;還容許發送方將信息分紅幾個部分,並對每一個部分指定不一樣的編碼方法,即在一個信息中既發送普通文本又附加 (attach) 一個圖像, MIME 自動解碼附加的數據,爲了透明的編碼和解碼, MIME 在電子郵件頭部增長兩行 : 一行用來聲明使用 MIME 生成信息,另外一行說明 MIME 信息是如何包含在正文中的
MIME-Version: 1.0
Content-Type:Multipart/Mixed; Boundary=Mime_separator|Content-Type:text/plain
3. 郵件接收客戶訪問郵件的方式
郵件接收者對郵件服務器的請求訪問模式有離線、在線和斷線 3 種模式
4.POP3 協議要檢測用戶登陸名和口令,而後將用戶的郵件從服務器移動到用戶本地桌面系統的 MUA. 它監聽 TCP 110 端口, POP3 RFC1939 中定義,它是請求 - 響應式協議
5.IMAP4: POP 的替代品,它了 POP 相同的基本功能以外,還增長了對郵箱同步的支持,即 IMAP 提供瞭如何遠程維護服務器上的郵件箱的功能
.sendmail 簡介
1.sendmail 的功能
接收 SMTP 郵件、爲郵件選擇路由、傳輸 SMTP 郵件、使用別名,從而容許使用郵件列表、錯誤檢測以及速度和代價優化
2.sendmail 的結構和處理過程
3. 安裝 sendmail imap
#rpm -qa|grep sendmail
插入第一張光盤
#mount /mnt/cdrom
#cd/mnt/cdrom/RedHat/RPMS
#rpm -ivh sendmail- 8.12.8 -4.i386.rpm 安裝 sendmail 服務軟件
#rpm -ivh m4- 1.4.1 -13.i386.rpm m4 工具生成 sendmail 的配置文件
#cd;eject
插入第 3 張光盤
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh sendmail-cf- 3.12.8 -4.i386.rpm
#rpm -ivh sendmail-doc- 8.12.8 -4.i386.rpm
#cd;eject
4. 啓動 sendmail
mc
LOCAL_DOMAIN('abc.com')dnl 設置本地域
LOCAL_DOMAIN('localhost.localdomain')dnl
DAEMON_OPTIONS('Port=smtp,Addr=192.168.1.57,Name=MTA')dnl 指定 sendmail 做爲 MTA 運行時的參數, dnl 刪除尾部空格
#m4 sendmail.mc>sendmail.cf
#vi /etc/mail/sendmail.cf
C{w}abc.com 設置類的值爲 abc.com
C{ w}localhost.localdomain
O DaemonPortOptions=port=smtp,Addr=192.168.1.57,Name=MTA 命令 O 用於爲 sendmail 的選項賦值
O DaemonPortOptions=port=smtp,Addr=127.0.0.1,Name=MTA
#service sendmail start
. 安裝和啓動 imap
1. 安裝 IMAP
#rpm -qa|grep imap
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh imap -2001a -18.i386.rpm
#cd;eject
2. 啓動 imap
#vi /etc/xinetd.d/imap
disable= no
service xinetd restart
3. 配置 DNS MX 記錄
IN MX 5 rhl9.abc.com
rhl 9 IN MX 10 rhl9.abc.com
4. 收發郵件測試 :
#cat /etc/resolv.conf
nameserver 192.168.88.57
#mail [email]user1@abc.com[/email]
Subject:test1
Thist is a test1
.
Cc:
#su - user1
$mail
#mail -u user1
. 配置虛擬郵件用戶數據庫
#vi /etc/named.conf
配置虛擬域名字解析
#echo "abc.com">>/etc/mail/local-host-names
vi /etc/mail/access
abc.com         RELAY
#cd /etc/mail
#makemap hash access.db<access
生成 /etc/mail/virtusertable.db
#vi /etc/mail/virtusertable
[email]webmaster@abc.com[/email] user1
#cd /etc/mail
#makemap hash virtusertable.db<virtusertable
#service sendmail restart
測試
#mail [email]webmaster@abc.com[/email]
#mail -u user1
:1. 使用 access 數據庫
smtp 協議是不須要身份驗證的, access 數據庫能夠限制基於主機的訪問控制
< 地址 >< 操做 >
格式        舉例        說明
domain abc.com *.abc.com, 即域內全部主機
ip address 192.168.12,192.168.11.11    網段內的全部主機及特定的主機
username@domain     [email]user1@abc.com[/email]  一個特定的郵件地址
username@  user1@  用戶名爲 user1 的郵件
操做 :
格式        說明
OK  無條件接受或發送
RELAY   容許 SMTP 代理投遞
REJECT 拒絕授受併發布錯誤信息
DISCARD      丟棄郵件,無錯誤信息發佈
#vi /etc/mail/access
192.168.2.108 REJECT
user1@
測試 :
192.168.2.108 計算機發送郵件測試
mail from:user2@abc.com rcpt to:user2@abc.com
2: 使用 aliase 數據庫
#vi /etc/aliases
aliases:recipient
zhangsan: user1
#newaliases 命令生成 aliases.db
rcpt to:zhangsan.abc.com
3: 轉發郵件
abc:abc@abc.com
4: 僞造電子郵件
#telnet
set local_echo
open 192.168.2.168 25
mail from:webmaster@abc.com
rcpt to:user1@abc.com
data
subject:this is fake! 欺騙
<cr>
<cr>
enter message
.
Quit
相關文章
相關標籤/搜索