※ 引述《adsl9527 (申裝adsl的小為)》之銘言:
: 關於寄信的運作,小弟不太確定,所以我把我現在理解的打上來
: 強者們看看對不對
直接回好了
別把機器跟軟體混在一起好了
不大好w
MUA/MTA/MSA/MDA
MUA -> 使用者端
就是處理提供使用者收發信的client
像是一些webmail/thunderbird/outlook
MTA -> 傳送信件的 工作就是把信丟來丟去w
MSA -> 負責幫忙把把信從MUA丟給MTA的 不過其實不少會直接給MTA
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)
2.MUA經過一個額外的SMTP轉寄
這就是MUA -> MSA/MTA -> (MTA -> ) MDA
MUA會直接連到指定的SMTP送信
這SMTP可能會是MSA或是MTA
而SMTP收到後會看domain決定如何處理
也許這SMTP會發現這domain會是自己負責的
然後就往MDA送了
如果不是的話則會跟上面一樣找MX或domain IP往下個MTA送
然後就跟後半一樣了
而MUA要收信的話...
如果MUA跟MDA同一台
MUA可能就會直接去讀mailbox了
如果不同台
有POP3/IMAP這兩種protocol去讀mailbox
不過這邊其實已經跟MDA無關了XD
MDA的任務只有收到信然後寫進mailbox而已
POP3/IMAP Server說起來是直接操作mailbox的
但現在的MDA大多會含POP3/IMAP的功能就是
大致是這樣
如果論設定
domain部分
domain本身要有個MX record
然後MX內的host要指向你那幾台能夠正確丟到你MDA去的有MTA server
可能是一台postfix設定的同時是MDA/MTA/MSA的server
也可能只是一台一律轉寄給另外一台MTA Server的MTA Server
或者其他各種設定
當然沒有MX雖然不建議但也是可行
那就是你domain的IP要是上述的那些MTA Server
至於MUA上面的POP3/IMAP/SMTP就看需求訂
但這部分不完全跟架設mail有關
SMTP部分
除非你要讓對方從你的domain寄信
那為了domain信用問題會建議統一由幾台SMTP送出
其他SMTP的一慮宣告為不合法的Server(有幾個規範可以做這件事)
當然如果不在意domain信用問題
那讓隨便一個MTA寄都行
只是一旦遇到垃圾信問題這domain的信用很快就沒了
不過也有另一個狀況
那就是對方可能會看這信不是從應該要來的MTA來的
所以直接當垃圾信處理掉(即使他不該是垃圾信)
而SMTP Server沒什麼
有辦法讓MUA設定上去就好
看你要hostname/domain name/ip都行
pop3/imap同理
但pop3/imap基本上是一定需要的
除非你只給webmail介面
而你的webmail可以直接讀到mailbox
(通常就是跟MDA在同一台機器上了)
或者你的做法是要連到MDA上去讀mail