Network 板


LINE

※ 引述《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], 其中 outlook 内外寄 smtp 主机指向 msa.hinet.net port 25,那 outlook 寄信时候查询出 msa.hinet.net 的 IP 纪录,最後连线到该 ip 的 port 25 与对方 MTA 程式使用 smtp 协定沟通,然後 MTA 说他要寄信给 [email protected] 这个收件人,MTA 会判断就是: 1. 这个收件者 [email protected] 指自己 mail server 本身的使用者帐号吗, 若是收下来最後放置到使用者的 mailbox 内 (过程是透过 MDA 投递放置还是 MTA 自己放置都好,看设定)。 2. 若 MTA 发现这个 [email protected] 不是 mail server 本身的使用者帐号, 那这时候这 mail server 若有开放 mail relay 就会把信件收下来再处理, 否则会出现 relay denied 这类回应 3. MX 纪录是给 MTA 查询用的,比方 msa.hinet.net 後续要处理一封给 [email protected] 的信件,会先透过 DNS 解析 example.com 的 MX 纪录, 这决定最後要透过 SMTP 连线到哪一台主机进行沟通把信件交给对方。 其中有 MX 记录的话: 1) MX 纪录内有优先权与主机项目,先不管优先权部分,查出来的主机名称 部分,也只会解析该主机名称应对的 IP 纪录,最後用 smtp 连线到该 ip 主机进行寄信沟通。 没有 MX 纪录: 1) 若 example.com 可能没有 MX 纪录,那就直接以 example.com 这个 A/AAAA IP 纪录查询後连线到远端的 smtp 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了 MUA 与 MDA 同一台?若你是说像是 unix 系统或者是 linux 系统上直接登入到 存放 mail 信箱的主机上,然後执行 mail 或是 mutt 这类 MUA 程式的话, 那这些程式的确预设读取本机 local 自己使用者的 mailbox 格式的信箱。 不过这讨论这样说似乎会容易被误会.... : 如果不同台 : 有POP3/IMAP这两种protocol去读mailbox : 不过这边其实已经跟MDA无关了XD : MDA的任务只有收到信然後写进mailbox而已 : POP3/IMAP Server说起来是直接操作mailbox的 : 但现在的MDA大多会含POP3/IMAP的功能就是 MDA 一般主要还是指 SMTP 服务程式收到信件比方是要给本机上的使用者帐号, 那 SMTP 会呼叫 MDA 程式把信件内容就给他处理,最後放置到本机相关信件档案内, 这与所谓 POP3/IMAP 比较没有什麽关系。个人比较不会说 dovecot, cyrus-imap 等这类提供 pop3/imap 服务的程式定位是 MDA。 : 大致是这样 : 如果论设定 : domain部分 : domain本身要有个MX record : 然後MX内的host要指向你那几台能够正确丢到你MDA去的有MTA server : 可能是一台postfix设定的同时是MDA/MTA/MSA的server : 也可能只是一台一律转寄给另外一台MTA Server的MTA Server : 或者其他各种设定 : 当然没有MX虽然不建议但也是可行 : 那就是你domain的IP要是上述的那些MTA Server 这段陈述有看但是不是很清楚... 我想原本楼主的问题是要厘清这两点就好: 1. 用户端用某个 smtp server 寄信,输入连线的主机名称,该主机名称有无 dns mx 纪录并不重要,因为 muta 只会查询该主机名称的 IP 纪录然後进行 连线沟通。比方寄信主机用 mail.example.com 的话,可以查询到 mail.example.com 的 ip 位址,然後可以连线到该主机的 port 25 等这类 smtp 服务沟通即可 2. 主机名称的 MX 纪录主要是影响外面的 mail server 要寄信到某个 email 帐号信箱时决定实际连线的 smtp 主机位址来进行传递沟通。 比方有申请 example.com 这个 domain name,然後指定使用的的信箱是 [email protected],那要寄信给该帐号外面的 smtp 主机会查询 mail.example.com 有无 mx 纪录,有 mx 纪录就依据 mx 记录内的主机清单 资讯来连线 (其中 mx 内还区分相关优先权指定),若没 mx 纪录就直接查询 mail.example.com 的 ip 资讯来连线。 3. MX 的设定在 mail 里面基本上有很多不同应用的议题可以讨论, 比方常见的 mx mail backup 功能,比方这类 dns 设定: @ IN MX 10 mail.example.com. IN MX 20 mail2.example.com. mail IN A 1.2.3.4 IN MX 10 mail.example.com. IN MX 20 mail2.example.com. 实际一般主要的服务就是 mail.example.com,实际外面要寄信给 [email protected] 或是 [email protected] 的信件,外面的 mail server 会连线到 mail.example.com 的主机进行 smtp 沟通,若失败等 无法连线会改连到 mail2.example.com 来投递。 mail2 主机大多为 mx backup 的主机,一般会设定允许 mail relay 给 [email protected][email protected] 信件,并且定期检查 mail.example.com 是否 smtp 可以回应了,可以回应回再用 smtp 沟通把信件 丢回给 mail.example.com 主机 其他部分比方有 mail balance 功能,比方看看 hinet 的设定来说, $ host -t mx msa.hinet.net msa.hinet.net mail is handled by 0 msa-smtp-mx2.hinet.net. msa.hinet.net mail is handled by 0 msa-smtp-mx1.hinet.net. $ host -t a msa-smtp-mx1.hinet.net. msa-smtp-mx1.hinet.net has address 168.95.6.51 msa-smtp-mx1.hinet.net has address 168.95.6.60 msa-smtp-mx1.hinet.net has address 168.95.6.56 ... $ host -t a msa-smtp-mx2.hinet.net. msa-smtp-mx2.hinet.net has address 168.95.6.69 msa-smtp-mx2.hinet.net has address 168.95.6.63 msa-smtp-mx2.hinet.net has address 168.95.6.61 ... 所以 internet 上的 smtp server 要寄信给 [email protected] 的信件 实际上是连线到 msa-smtp-mx{1,2}.hinet.net 主机,而其中他们优先权相同, 且这两个主机名称都具备多个 ip 提供平衡负载功能,大多架构来说这些主机群 是 mail relay host,收到的信件会再依据其他设定放置到最後实际的 mail server 的 mailbox 上。 : 至於MUA上面的POP3/IMAP/SMTP就看需求订 : 但这部分不完全跟架设mail有关 : SMTP部分 : 除非你要让对方从你的domain寄信 : 那为了domain信用问题会建议统一由几台SMTP送出 : 其他SMTP的一虑宣告为不合法的Server(有几个规范可以做这件事) : 当然如果不在意domain信用问题 : 那让随便一个MTA寄都行 : 只是一旦遇到垃圾信问题这domain的信用很快就没了 这个与原本楼主的问题似乎不大相同了,若要谈 SPF 纪录或是 DomainKey 这类部分好像离题更多。 : 不过也有另一个状况 : 那就是对方可能会看这信不是从应该要来的MTA来的 : 所以直接当垃圾信处理掉(即使他不该是垃圾信) : 而SMTP Server没什麽 : 有办法让MUA设定上去就好 : 看你要hostname/domain name/ip都行 : pop3/imap同理 : 但pop3/imap基本上是一定需要的 : 除非你只给webmail介面 : 而你的webmail可以直接读到mailbox : (通常就是跟MDA在同一台机器上了) : 或者你的做法是要连到MDA上去读mail 最後其实原本楼主的问题可以自己查一下网路文件,其实一般的 mail server 建置与 DNS 内与 MX 记录都会有说明。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.236.157.200
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Network/M.1466941426.A.061.html
1F:推 adsl9527: 有用postfix+dovecot实作过了 也比较懂了 06/28 17:02
2F:→ adsl9527: 感谢linux版大大回答 06/28 17:05
3F:推 s801107: 受益了 06/28 18:51







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP