mail命令需要郵件伺服器嗎?

mail命令需要郵件伺服器嗎?

在使用linuxmail指令之前是否需要設定郵件伺服器?

答案1

不,您不需要郵件伺服器來傳送郵件。我最熟悉的是 Sendmail,它有 3 類功能可以實現電子郵件即服務。 MDA(郵件傳送代理)為1,MTA(郵件傳輸代理)為2,3為MUA(郵件用戶代理)。

術語令人困惑,但您並不需要 MTA 始終運行。每次 MUA ( mail) 想要「傳送」郵件時都會呼叫 MTA 。

當您執行mail並指定要將郵件傳送到的位址時,[email protected].郵件用戶端將呼叫 MTA ( /usr/bin/sendmail),然後 MTA 將查詢該主機/網域 (example.com) 的 DNS,並找出為其 MX 記錄指定的值。 MX 代表郵件交換器。

例子

您可以使用dig命令來查看:

$ dig gnu.org mx

; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;gnu.org.           IN  MX

;; ANSWER SECTION:
gnu.org.        299 IN  MX  10 eggs.gnu.org.

;; ADDITIONAL SECTION:
eggs.gnu.org.       299 IN  A   208.118.235.92
eggs.gnu.org.       299 IN  AAAA    2001:4830:134:3::10

;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:27:22 2013
;; MSG SIZE  rcvd: 90

因此,用戶端將嘗試在連接埠 25 上連接到 Eggs.gnu.org 來發送此電子郵件。

DNS 伺服器?

@puk 提出了以下後續問題:

這是我本機上的 DNS 嗎?

我對此的回答是:

@puk - 它可以採用與郵件伺服器相同的方式,但通常情況並非如此。查看您的/etc/resolv.conf文件,當您執行該dig命令時,您會注意到SERVER: ...底部的行。這是為您的請求提供服務的 DNS 伺服器。

例子

我的/etc/resolv.conf文件包含以下內容:

nameserver 192.168.1.8

諸如此類的查詢,使用dig

$ dig gnu.org mx

結果在底部:

;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:46:13 2013
;; MSG SIZE  rcvd: 90

對於精明的讀者,我想問一下,這是如何配置的?答案就是/etc/nsswitch.conf文件。具體來說這一行:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

也就是說,先使用檔案 ( /etc/hosts),然後再使用mdns4_minimal.這就是多播 DNS。它基本上是以前查找的快取。最後它使用檔案中指定dns的 IP 位址。nameserver/etc/resolv.conf

答案2

這實際上取決於mail您使用的版本。

所有版本都需要 MTA 來實際傳送郵件,但有些版本能夠使用 SMTP 與遠端 MTA(“智慧型主機”,例如您的 ISP 的郵件伺服器)對話,有些版本只能透過管道將訊息/usr/sbin/sendmail傳送到當地 MTA。

在後一種情況下,本地 MTA 可以是成熟的 MTA,例如傳送郵件或者進出口銀行或者後綴。或者它可能是一個簡單的僅發送 MTA,例如空白郵件程式或者ssmtp。或是稍微複雜一點的迷你 MTA,例如郵件傳輸協定它還支援對郵件進行排隊以供稍後投遞。

在自由軟體和開源世界中,該mailx軟體包有兩個主要變體(提供mail命令):bsd-mailx、 和heirloom-mailx。該mail命令在 GNU 中也可用mailutils

bsd-mailx不支援 SMTP,只能透過管道發送郵件/usr/sbin/sendmail

傳家郵件x可以與智慧型主機進行 SMTP 通訊以及傳統的「管道到發送郵件」方法。順便提一句,蝸牛可能是 heirloom-mailx 的最佳衍生品 - 它仍在積極開發和更新中。

GNU 郵件工具包含一些供最終使用者和系統管理員使用的與郵件相關的工具,包括一個版本mail等等。

因此,回答您的問題「您需要郵件伺服器嗎?」。是的,有點像。您需要一個,但是根據mail您安裝的版本,您可能不必在自己的系統上安裝和設定它。

IMO,您最好至少擁有一個最小的 MTA msmtp(或一個成熟的 MTA,如postfixexim),而不是僅僅依靠智能主機,heirloom-mailx因為當您的互聯網連接中斷或您的智能主機處於關閉狀態時,您仍然需要對郵件進行排隊以供稍後投遞無法到達。透過本機佇列,mail其他crond程式可以只發送並忘記任何郵件。如果沒有本地佇列,如果智慧型主機不可用,他們就必須以某種方式處理錯誤情況。

相關內容