Mailx
使用 mailx 命令時我應該知道什麼
我正在使用mailx命令發送郵件,我嘗試了兩種方式..
mailx -s "This is Subject" toAddr < bodyFile.txt mailx -r "fromAddr" -s "This is Subject" toAddr < bodyFile.txt
我收到同樣的錯誤:
發送郵件:致命:參數 inet_interfaces:找不到 ::1 的本地介面
我想知道如何解決該錯誤以及以下內容:
- mailx
fromAddress
預設採用什麼?- 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