Re: [問答] 關於寄信的小問題

作者: kenduest (小州)   2016-06-26 19:43:43
※ 引述《danny8376 (釣到一隻猴子@_@)》之銘言:
: 直接回好了
: 別把機器跟軟體混在一起好了
: 不大好w
: MUA/MTA/MSA/MDA
: MUA -> 使用者端
: 就是處理提供使用者收發信的client
: 像是一些webmail/thunderbird/outlook
: MTA -> 傳送信件的 工作就是把信丟來丟去w
: MSA -> 負責幫忙把把信從MUA丟給MTA的 不過其實不少會直接給MTA
: MDA -> 收件夾 就只是個收件夾
老實說其實討論不用到這麼複雜,原本樓主的問題不需要談這些名詞...
很多 dns, mail 服務的建置書籍都有說...不過都討論了就.... 繼續說 :)
MUA 一般泛指用戶端的 Mail 軟體,比方 Outlook, Thunderbird 這類,
一般主要就是提供使用者能夠收發 email 的軟體。
MTA 本身提供 server 之間實際信件傳輸,目前一般都會使用 SMTP 協定方式
進行溝通,也就是兩台主機的 MTA 程式透過 SMTP 協定傳輸資料。
一般來說會比較少談到 MSA,這樣談下去會很複雜。傳統 MTA 工作在 port
25/tcp 提供讓 MUA 連結進行 SMTP 溝通之外,也提供 server 與 server
之間傳送信件的使用。
MSA 則是工作在 port 587/tcp 上,一般是給 MUA 連結使用,所以兩端還是走
SMTP 協定溝通不過連線傳輸一般會支援 STARTTLS 加密方式來進行溝通之外,
還會支援 SMTP AUTH 身份驗證等,一般就是透過驗證成功之後允許信件可以代為
收下,然後會把信件再透過 SMTP 協定方式交給另外一個 MTA 來處理最後信件
寄送的功能。
實際上這樣說吧,有人會在建置 mail server 服務時候,會另外提供 port 587
服務的連線,後續 server 接收到 MUA 連信進入的信件一般會跑 mail scan
的處理檢查信件是否有 spam 等這類處理,至於 port 25 要不要跑這類服務看
需求沒有標準答案。另外其實目前許多 mail server 都直接在 port 25 開啟支援
AUTH SMTP、STARTTLS 等支援,MSA 實際的用途比較不是很明顯了。最後一般
一般的 mail server 讓 MUA 所連線的主機,大多都是直接跑一套軟體直接能夠
listen port 25 與 port 587,比方 linux 常見 postfix 來說可以設定直接
聆聽 port 25,587 ,所以實際上 MTA or MSA 都是由 postfix 程式所處理的,
詳細運作的功能差異只是設定檔案的差別而已。
一般說 MDA 是說,若 MTA 接收到一封要寄送的信件是本地端的使用者帳號的話,
那會信件內容交給 MDA 程式來處理,而 MDA 最後會把信件內容放置到實際使用者
的 mailbox 內。早期 sendmail 這類 MTA 來說,對於本地端使用者信件處理就是
呼叫 mail.local 或者是 procmail 這類 MDA 程式,
目前的確許多 MTA 是直接納入 MDA 的功能,比方 postfix 這軟體本身要把信件
投遞到本機 mailbox 或是 MailDir 格式的信箱就不需要額外的 MDA 幫忙,所以
可以簡單說 postfix 本身就是 MTA 兼當 MDA 程式的功能。不過信件的儲存格式
不一定是 mailbox or MailDir 格式,若是使用 cyrus imap 等這類 mail 的系統
來說,postfix 還是要設定一下 LMTP 組態再透過 SMTP 協定把信件交給 cyrus
imap 的程式來處理最後信件的存放。
直接用 MDA 就是收件夾這說法奇怪。
: 從寄信到收到信的過程是
: MUA -> MTA -> (MTA -> )*n -> MDA -> MUA
: MUA如果不是在MDA/MTA上的話分別要設定POP3/IMAP跟SMTP Server(可選)
: MUA寄信時有分幾種
: 1.MUA直接寄給對方的server
: 這狀況是MUA -> MTA -> MDA
: MUA會直接查domain的MX(本身是個MTA)或者沒MX直接用該domain的ip
: 而這邊開始就是對方伺服器內部了
: MTA會去找這domain該給誰
: 而如果是postfix/sendmail的話因為會身兼MTA/MDA/MSA
: 所以如果domain是設定內接收的domain的話
: postfix/sendmail會轉寄給內部的MDA然後就寫入到收件夾了
: 當然實際上也可能讓他把特定網域的轉寄給內部其他伺服器
: (可能專責MDA的Server)
前面一開始怪怪的... MUA 本身並不管什麼 MX 紀錄
寄信來說 MUA 主要功能就是連線到 mail server 上透過 SMTP 溝通說要給誰。
MUA 軟體本身要設定寄信與收信的 mail server 主機資訊,比方常見 hinet
adsl 的用戶smtp 寄信主機會使用 msa.hinet.net 這台機器,所以 MUA 後續
要寄信出去就是直接查詢 msa.hinet.net 的 A/AAAA 紀錄 (IP) 紀錄,用 smtp
連線到目的主機溝通。
比方使用者用 outlook 這個 MUA 寫信說要寄信給 [email protected]/*
作者: adsl9527 (申裝adsl的小為)   2016-06-28 17:02:00
有用postfix+dovecot實作過了 也比較懂了感謝linux版大大回答
作者: s801107 (wjs)   2016-06-28 18:51:00
受益了
繼續閱讀

Links booklink

Contact Us: admin [ a t ] ucptt.com