1 / 63

Mail Server

Mail Server. Outline. 基本概念 Mail Server 原理 Mail 相關通訊協定 Postfix 簡介 Postfix 的安裝、設定及測試 用戶端如何收信 OpenWebMail 簡介與安裝設定. 收發信件的基本概念. 電子郵件與傳統郵件一樣,如同地址般,需要有一個發信端與收信端 發信流程:信→郵局與郵局間的傳遞→收件人 郵務士的功能由轉送郵件的程式所取代. Mail Server 原理. E-mail 系統的服務程式.

alcina
Télécharger la présentation

Mail Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mail Server

  2. Outline 基本概念 Mail Server原理 Mail 相關通訊協定 Postfix簡介 Postfix的安裝、設定及測試 用戶端如何收信 OpenWebMail簡介與安裝設定

  3. 收發信件的基本概念 電子郵件與傳統郵件一樣,如同地址般,需要有一個發信端與收信端 發信流程:信→郵局與郵局間的傳遞→收件人 郵務士的功能由轉送郵件的程式所取代

  4. Mail Server 原理

  5. E-mail 系統的服務程式 E-mail 系統包括 MUA (Mail User Agent) 與 MTA (Mail Transport Agent) 兩個部份。 MUA 指使用者可用來讀寫信件的程式。Ex: Outlook。 MTA 指系統中負責處理信件收發工作的程式。Ex: sendmail 與 postfix。

  6. MUA(Mail User Agent ) 使用者所使用的閱讀、撰寫、回覆信件的程式。 Linux 的 pine、elm、mutt、kmail 等,及 Windows 中的 outlook等,都是用戶端用來讀寫收發信件的程式。 用戶端是透過 MUA 軟體來跟郵件主機搭上線,但MUA並不負責實際傳遞信件的工作,而是交由MTA處理。 6

  7. MTA ( Mail Transport Agent) 用戶端使用 MUA 將信件寄出時,這封信是透過一台安裝有 MTA 軟體的主機代為處理。Linux 的 postfix 、qmail 及 Windows 的 Exchange 等,都是屬於 MTA(一台 Mail Server)。 當 MTA 收到 MUA 所寄來的 mail 時,會先判斷這封信是否為本地端的 mail,若否,則繼續將此 mail 傳送給另一部這個信件的 MTA 來處理 ; 而當 MTA 將信件轉寄給另一台 MTA 的行為,就叫做 Relay 。

  8. MDA (Mail Deliver Agent) 即郵件投遞代理程式之意。 MTA 收到 MUA 所寄來的信件時,如判斷這封信是屬於本地端的信件,會交給 Local MDA 處理,然後 Local MDA 就把它放置在使用者個人信箱之中 ; 那如果此 mail 是屬於外部的信件,則會透過 smtp MDA 來將 mail 轉寄給另一台 MTA 處理。

  9. 佇列管理員 (Queue Manager) 9

  10. Mail 相關通訊協定

  11. SMTP ( Simple Mail Transport Protocol ) 這是在寄信時所使用的協定,像MUA 將信件傳送給MTA,或者MTA 再把信件轉寄給另一台MTA 時,就是使用SMTP 協定。 SMTP 協定所要使用的port 為25,當MTA 發覺此mail 非本地端信件時,即會把信件Relay 給另一台MTA 的25 port,當然這過程是使用SMTP 協定。 11

  12. POP ( Post Office Protocol ) 這是收信時所使用的協定,也就是MUA 把信件從MTA 中取回時所使用的協定。 POP 有所謂的POP2 及POP3,數字代表的是POP 協定的版本,目前以POP3 為主。 POP3 協定是使用110 port,因此當使用者要收信時,MUA 是連接POP Server 的110 port 來將信件收下。

  13. IMAP ( Internet Mail Application Protocol ) 使用POP3與IMAP 不同點是,POP3通常會把郵件下載回自己主機內,這樣就會把伺服器上的Mail Box 清空,因此使用者可以離線閱讀信件。 IMAP 則是把信件都保留在伺服器上,好處是可以利用不同的電腦來存取伺服器上所有新舊的信件 ﹔在做資料夾分類時,所建立的新資料夾是存在於伺服器上,而非個人電腦中。

  14. 郵件系統與協定之間的關係 14 14

  15. E-mail寄信/收信過程 寄信人將E-mail寫好上網寄出後,透過SMTP(Simple Mail Transfer Protocol,簡易郵件傳送協定),將E-Mail送到寄信人的郵件主機(Mail Server)。 寄信人的郵件主機(Mail Server)再透過SMTP穿過Internet,將信寄送至收信人的郵件主機(Mail Server)的收信人帳號信箱上。 收信人上網連上郵件主機後,透過POP3(Post Office Protocol Version 3,郵局協定第3版),從郵件主機下載郵件到電腦的E-mail軟體裏或閱讀個人的郵件。

  16. 傳送 E-mail 的方式 利用網路來傳送 E-mail 可分為 2 種。 在單一網路中收發 E-mail,例如公司內部。 將 E-mail 傳送到另一台郵件主機,發信與收信分別在不同的郵件主機中進行。

  17. 在內部網路中傳送 E-mail 當同一郵件主機中的使用者 cassia 要寄信給 ken 時,郵件伺服程式並不會將信件傳出郵件主機。用這種方式時,郵件主機並不需要有一個已登記的伺服器名稱,因此 cassia 寄給 ken 可以隨意使用下列幾種 E-mail 位址:

  18. 在內部網路中傳送 E-mail

  19. E-mail 位址的格式 每個 E-mail 位址的格式,皆是由郵件帳號、主機名稱 (host name) 與網域名稱 (domain name) 組合而成。

  20. 傳送 E-mail 到其他郵件主機 當 E-mail 要傳送到另一台郵件主機時,一定要指定收信者的完整 E-mail 位址。 例如 cassia 要寄一封信給lucy@ms1.whatever.net,則郵件伺服程式發現此信是要寄到 ms1.whatever.net 網域,就會詢問名稱伺服器 (name server) 關於此網域的資訊,然後透過 SMTP 協定將信件傳送到遠端的郵件主機:

  21. 傳送 E-mail 到其他郵件主機

  22. 傳送 E-mail 到其他郵件主機 架設郵件主機時,不可隨便取一個名稱 ,因為上游沒有記錄此郵件主機的位址,則當別人要寄信過來的時候,會因為找不到這台郵件主機而無法順利寄出。

  23. 傳送 E-mail 到其他郵件主機

  24. 檢查名稱伺服器是否設定正確 想要讓自行架設的郵件主機能正常運作,除了要有正式的網址之外,還必須在名稱伺服器中登記此主機是郵件伺服器,如此其他的郵件主機才能寄信給我們自行架設的郵件伺服器,否則信件可是會被退回的! 因此,必須在名稱伺服器中登記主機為郵件伺服器。

  25. 檢查名稱伺服器是否設定正確 查詢郵件伺服器是否有登記

  26. sendmail與postfix CentOS 預設會提供sendmail (http://www.sendmail.org) 以及近期很熱門的 Postfix (http://www.postfix.org)。 sendmail 曾是最為廣泛使用的 mail server 軟體,由於 設定檔太過於難懂,程式漏洞問題導致的主機安全性缺失等問題,新版的 CentOS 已經將預設的 mail server 調整為 postfix 。

  27. Sendmail 的特色: 允許各種不同的emial位址路徑 支援虛擬的domains及users 允許偽裝的使用者及機器 提供自動重試失敗傳送郵件的重傳及其它一些情況

  28. Postfix簡介 由Wietse Zweitze venema 博士於1998年在IBM所開發 。 Postfix的優點: 速度更快 相容性佳 能調節系統 更靈活 安全性 28 28

  29. Postfix相關套件 Postfix : SMTP Server 的主要套件。 dovecot : POP3 Server 的主要套件。

  30. 設定檔路徑(一) # rpm -ql postfix /etc/postfix/main.cf Postfix 的主要設定檔。 /etc/postfix/transport 擔任 Mail GW 的主機,可以藉由設定這個檔案,來將信件轉給指定的 MTA。 /etc/init.d/postfix 管理 Postfix 服務的 script。 /sbin/rcpostfix 連結至 /etc/init.d/postfix 的符號連結檔。 /usr/lib/postfix/master 提供 Postfix 服務的 daemon。 /usr/bin/mailq 查詢郵件佇列 (mail queue) 的指令。 /usr/bin/newaliases 建立或更新郵件別名資料庫。

  31. 設定檔路徑(二) /usr/sbin/postalias維護 Postfix 別名資料庫。 /usr/sbin/postconf Postfix 的設定工具。可以用來列出 Postfix 的預設參數及實際參數值,也可以直接在命令列上 修改設定參數,並將設定結果寫入 main.cf 中。 /usr/sbin/postfix控管 Postfix 的程式。 /usr/sbin/postmap用來將指定的檔案內容轉換成資料庫格式,並將轉換後的結果寫入資料庫檔案裡。 /usr/sbin/postsuper管理佇列郵件的工具。 /var/spool/postfix處理佇留信件的相關目錄,其所存放的位置,如 hold、incoming、active 及 deferred 等目錄。

  32. Postfix相關指令 # postfix check <=檢查 postfix 相關的檔案、權限等是否正確。 # postfix start <=執行postfix # postfix stop <=關閉 postfix # postfix flush <=強制將正在郵件佇列的郵件寄出 # postfix reload <=重新讀入設定檔/etc/postfix/main.cf #postconf <= 列出目前的設定參數值。 #postconf -d <= 列出預設的設定參數值。 #postconf -e 'alias_maps = hash:/etc/postfix/aliases' 在命令列上編輯設定參數後,直接寫入 main.cf 中。 # chkconfig postfix 35 <=設定開機時啟動 Postfix 服務

  33. 設定Postfix # vi /etc/postfix/main.cf (75行)myhostname = mail.ccnet.com 指定 Mail Server 在 Internet 上的主機名稱 (83行) mydomain = ccnet.com myhostname 設定為 mail,那 mydomain 就是 ccnet.com。 (99行-註解拿掉) myorigin = $myhostname (113行,116行加註解 ) inet_interfaces = all 指定郵件主機上,允許接收信件的網路介面位址。all 就表示是所有網路介面都可以接收使用者所寄來的信件,這也是預設值。

  34. 設定Postfix Server (二) mynetworks_style = subnet指定 SMTP 所信任的來源端類型,有以下三種:#mynetworks_style = class #mynetworks_style = host mynetworks_style = subnet --- 只要與 MTA 位於同一個子網段的主機,其所寄過來的信件都允許 Relay。 message_size_limit = 10240000 # 設定每封信件大小,不得超過 10 MB。 接著測試再重新啟動: #postfix check # postfix reload 或 #/etc/init.d/postfix restart

  35. 設定Postfix Server (三) 啟動之後的檢查 # netstat -anp | grep :25tcp000.0.0.0:250.0.0.0:*LISTEN 11348/master     ↑  這裡如果顯示 127.0.0.1 的話,那表示不能對外提供 smtp 的服務,請特別注意。 #ps –aux |grep master

  36. Client端測試 WindowsC:\>telnet 192.168.1.123 25220 ccnet.com ESMTP Postfix <=ok Linux$telnet 192.168.1.123 25 quit <= 離開

  37. 設定可收信的 POP3 Server 確定是否已安裝dovecot#rpm –q qpopper 安裝dovecot #yum install dovecot 修改設定 # vim /etc/dovecot/dovecot.conf(新增在21行)protocols = imap pop3 # vim /etc/dovecot/conf.d/10-ssl.conf ssl = no <=將第 6 行改成no #/etc/init.d/dovecot start #chkconfig dovecot on #netstat -tlnp | grep dovecot <=檢查 port 110/143

  38. Linux用戶端如何寄信 在文字介面上打mail即可收信 #mail user1 <=寄信給user1 Subject: Say Hello <=輸入信件標題This is a test mail for Jack <=從這裡是信的內容 .<= 輸入一點 . 結束Cc:<= 若需要再輸入副本收件人的e-mail

  39. Linux用戶端如何收信 $ mail Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/wei": 1 message 1 new >N 1 root Sun May 27 22:43 18/530 "test 1" & <= mail 軟體的提示字元,可以輸入 ? 來察看可用指令 讀信:直接按 Enter 或輸入數字後 enter 顯示標題: h 或輸入 h 數字 回覆郵件: 輸入 R 刪除郵件: 輸入 d 或輸入 d10-50 刪除第 10-50 封郵件 儲存郵件到檔案: 輸入 s 數字 檔名 離開 mail:輸入 q 或 x ) 請求協助:輸入 help

  40. Linux mutt #yum install mutt # mutt [-a 附加檔] [-i 內文檔] [-b 秘密副本] [-c 一般副本] [-s 信件標題] email位址 要讓 mail 群組能夠使用 wei 的家目錄$ chmod a+x ~

  41. 非固定 IP位址 郵件伺服器 假設你是hinet 用戶,而 hinet 提供的郵件主機為 ms1.hinet.net 可以這樣設定: # vim /etc/postfix/main.cf 加入這行 relayhost = [ms1.hinet.net] /etc/init.d/postfix restart

  42. OpenWebMail安裝簡介 42

  43. webmail webmail 可當成是一種 MUA (郵件使用者代理人 )來看待,也就是說可以將他想成與 outlook express 同等級的應用軟體。而我們可以透過 webmail 對 mail server進行電子郵件的存取。

  44. 安裝之前 需要www server(Apache)的環境。 DNS server也是必須的。 安裝其他必要的軟體套件,如Text-lconv、postfix or sendmail。 特別注意檔案擺放的路徑位置。

  45. 安裝前置套件 首先啟動 smtp server: # service postfix restart //重新啟動postfix # chkconfig postfix on //設定成開機時自動啟動 檢查 smtp server是否啟動(smtp port 25) # telnet  localhost 25 # vi /etc/postfix/main.cf soft_bounce = no -> yes inet_interfaces = all

  46. 安裝前置套件 下載 Text-Iconv http://openwebmail.org/openwebmail/download/packages/ 下載 Text-Iconv-1.2.tar.gz套件 接著下載 Openwebmail http://openwebmail.org/openwebmail/download/current/ 下載 webmail-current.tar.gz (此為2.53版)

  47. 安裝前置套件 你也可以使用 wget 指令而不透過瀏覽器下載 #wget http://openwebmail.org/openwebmail/download/release/openwebmail-2.53.tar.gz 及 # wget http://openwebmail.org/openwebmail/download/packages/Text-Iconv-1.2.tar.gz

  48. 安裝前置套件 解壓縮Text-Iconv # tar xvf Text-Iconv-1.2.tar.gz 這邊請大家注意檔案的路徑,否則很容易搞混,建議都放在 root 底下。

  49. 安裝前置套件 進到 Text-Iconv-1.2 的目錄下# perl Makefile.PL(注意大小寫) 依序執行以下三個指令進行安裝 # make # make test # make install

  50. 安裝 Openwebmail 安裝 Openwebmail # tar xvfz openwebmail-2.53.tar.gz 將 Openwebmail 配合 apache 的位置擺放 # mv ./data/openwebmail /var/www/htdocs# mv ./cgi-bin/openwebmail /var/www/cgi-bin

More Related