Mailx

使用 mailx 命令時我應該知道什麼

  • November 25, 2018

我正在使用mailx命令發送郵件,我嘗試了兩種方式..

mailx -s "This is Subject" toAddr < bodyFile.txt
mailx -r "fromAddr" -s "This is Subject" toAddr < bodyFile.txt

我收到同樣的錯誤:

發送郵件:致命:參數 inet_interfaces:找不到 ::1 的本地介面

我想知道如何解決該錯誤以及以下內容:

  • mailxfromAddress預設採用什麼?
  • mailx預設取Mail Transfer Agent地址是什麼?
  • 從哪裡更改這些值?

Mailx只是一個命令行工具,用於將郵件傳遞給您的郵件傳輸代理(MTA;無論您安裝的是什麼:sendmail、exim,…)。它通過呼叫命令sendmail(通常是/usr/sbin/sendmail)來做到這一點。您的 MTA 提供此命令來發送郵件。

在您的情況下,它嘗試聯繫本地主機(::1)上環回設備的 IPv6 地址上的伺服器,但找不到任何東西。因此,要麼您的 MTA 配置不正確(使用 IPv6 而不是 IPv4),要麼您的 IPv6 網路設置不正確(環回介面上沒有 ::1 地址)。

預設from -address 是您的使用者名,MTA 添加您在 MTA 中配置的任何域名(如果您設置了規則,則可能會根據各種標準(例如它聯繫哪個郵件伺服器以傳遞郵件)進一步重寫此名稱為了它)。

您可以通過配置 MTA 來更改這些值。

我不明白“mailx 預設採用 MTA 地址是什麼”這個問題。如果您的意思是“它使用哪個 MTA”,正如我所說,它只是呼叫sendmail命令,因此它使用您安裝的任何提供此命令的 MTA 包。

# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

# more  /var/log/maillog
Sep  1 17:07:50 izuf6cj2o216xp postfix/sendmail[25307]: fatal: parameter inet_interfaces: no local interface found for ::1

解決了它:

vim /etc/postfix/main.cf
#inet_interfaces = localhost
inet_interfaces = all

然後

service postfix start

引用自:https://unix.stackexchange.com/questions/314896