當我使用 Linux“mail”命令時,郵件實際上是如何發送的?

當我使用 Linux“mail”命令時,郵件實際上是如何發送的?

mail從 Linux 終端機使用指令時,使用什麼電子郵件帳號傳送電子郵件,如下所示:

echo "Body of email" | mail -s "Subject" [email protected]

如果沒有發送郵件,是否需要指定發送郵件地址的使用者名稱和密碼?我讀過的所有mail教學都沒有指定有關寄件者地址的內容。

編輯:因此,如果我收到一條錯誤訊息,大意是“不支援郵寄到遠端網域”,這是否意味著我的 ISP 已阻止發送電子郵件?有沒有辦法解決?謝謝。

答案1

從 Linux 終端機使用 mail 指令時,使用什麼電子郵件帳號傳送電子郵件,如下所示:

在預設配置中,它與您用於登入的帳戶完全相同。通常是 Postfix 或 Exim4,有時是 Sendmail 或 qmail。

該帳戶的電子郵件地址是或,可以從其中取得 FQDN 。但是,目前您無法接收郵件your-login@hostnameyour-login@fqdnhostname -f此帳戶,因為 MTA 配置為「僅本機郵件」(如下方的錯誤訊息所述)並且不會接受來自外部的郵件。

編輯:因此,如果我收到一條錯誤訊息,大意是“不支援郵寄到遠端網域”,這是否意味著我的 ISP 已阻止發送電子郵件?有沒有辦法解決?

不;此錯誤訊息是由您自己的電腦傳回的。郵件伺服器配置為僅傳輸當地的郵件 – 從一個使用者到另一個使用者(最常見的是,從計劃任務守護程式(如果 cronjob 失敗)。通常,這些訊息會傳送至 、、或類似程式並可使用、 、 或類似程式讀取。 (IIRC、Thunderbird 也能夠匯入本地郵件線軸。)/var/mail/loginmailmuttre-alpine

重新配置郵件伺服器以向/從其他網站發送和接收郵件並不困難;根據安裝的 MTA 和 Linux 發行版,甚至單一命令也可能足夠:例如,dpkg-reconfigure postfix如果系統是帶有 Postfix 的 Debian。

不過,我猜您是在個人電腦上使用它,因此最好使用外部郵件帳戶 - 例如,如果您有 Gmail 地址,請使用您的 Gmail 地址。找出安裝了哪個 MTA(在 Ubuntu/Debian 上,dpkg -S /usr/sbin/sendmail會告訴你),然後 google 搜尋「program-name relay gmail」取得教學。

或者,安裝專為中繼設計的 MTA;是不錯的選擇msmtp並且esmtp易於配置。

答案2

mail指令發送目前帳號下的郵件,即 username@domain ;但是,通常網路服務供應商會阻止使用者運行自己的郵件伺服器(透過封鎖相關連接埠)以避免垃圾郵件,因此您的電子郵件不會被發送。

但發送問題也可能與您的機器配置有關。

編輯:啟用郵件從 gmail 等發送電子郵件。將以下資訊放入 ~/.mailrc 檔案中,該檔案提供郵件的基礎配置。但是,請確保只有您才能存取該檔案(使用 chmod 600 ~/.mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set [email protected]
set smtp-auth-password=pass
set [email protected]
}

在這種情況下,電子郵件將來自“[電子郵件受保護]」。

答案3

例如,它是發送使用者的帳戶名稱和主機名稱root@myserver。它不一定是一個可以接收外部電子郵件的實際郵箱。

答案4

參考這個如何從 Linux 命令列發送電子郵件了解更多信息

相關內容