如何用 Linux 命令列發電子郵件
Linux 提供了幾個可以讓你通過終端傳送電子郵件的命令,下面來展示一些有趣的方法。
Linux 可以用多種方式通過命令列傳送電子郵件。有一些方法十分簡單,有一些相對會複雜一些,不過仍舊提供了很多有用的特性。選擇哪一種方式取決於你想要什麼 —— 向同事快速傳送訊息,還是向一批人群髮帶有附件的更復雜的資訊。接下來看一看幾種可行方案:
傳送一條簡單訊息最便捷的 Linux 命令是 mail
。假設你需要提醒老闆你今天得早點走,你可以使用這樣的一條命令:
$ echo "Reminder: Leaving at 4 PM today" | mail -s "early departure" myboss
另一種方式是從一個檔案中提取出你想要傳送的文字資訊:
$ mail -s "Reminder:Leaving early" myboss < reason4leaving
在以上兩種情況中,你都可以通過 -s
來為郵件新增標題。
sendmail
使用 sendmail
命令可以傳送一封不包含標題的快信。(用目標收件人替換 recip
):
$ echo "leaving now" | sendmail recip
你可以用這條命令傳送一條只有標題,沒有內容的資訊:
$ echo "Subject: leaving now" | sendmail recip
你也可以用 sendmail
傳送一條包含一條標題行的完整資訊。不過使用這個方法時,你的標題行會被新增到要傳送的檔案中,如下例所示:
Subject: Requested lyrics
I would just like to say that, in my opinion, longer hair and other flamboyant
affectations of appearance are nothing more ...
你也可以傳送這樣的檔案(lyric
檔案包含標題和正文):
$ sendmail recip < lyrics
sendmain
的輸出也可以很冗長。如果你感到好奇並希望檢視傳送系統和接收系統之間的互動,請新增 -v
(verbose)選項。
$ sendmail -v recip@emailsite.com < lyrics
mutt
mutt
是通過命令列傳送郵件的一個很好的工具,在使用前你需要安裝它。mutt
的一個很方便的優勢就是它允許你在郵件中新增附件。
使用 mutt
傳送一條快速資訊:
$ echo "Please check last night's backups" | mutt -s "backup check" recip
從檔案中獲取內容:
$ mutt -s "Agenda" recip < agenda
使用 -a
選項在 mutt
中新增附件。你甚至可以新增不止一個附件 —— 如下一條命令所示:
$ mutt -s "Agenda" recip -a agenda -a speakers < msg
在以上的命令中,msg
檔案包含了郵件中的正文。如果你沒有其他補充的內容,你可以這樣來代替之前的命令:
$ echo "" | mutt -s "Agenda" recip -a agenda -a speakers
mutt
另一個有用的功能是可以新增抄送(-c
)和密送(-b
)。
$ mutt -s "Minutes from last meeting" recip@somesite.com -c myboss < mins
telnet
如果你想深入瞭解傳送電子郵件的細節,你可以使用 telnet
來進行電子郵件互動操作。但正如所說的那樣,你需要“學習術語”。郵件伺服器期望一系列命令,其中包括自我介紹(EHLO
命令)、提供發件人(MAIL FROM
命令)、指定收件人(RCPT TO
命令),然後新增訊息(DATA
)並以 .
結束訊息。並不是所有的電子郵件伺服器都會響應這些請求。此方法通常僅用於故障排除。
$ telnet emailsite.org 25
Trying 192.168.0.12...
Connected to emailsite.
Escape character is '^]'.
220 localhost ESMTP Sendmail 8.15.2/8.15.2/Debian-12; Wed, 12 Jun 2019 16:32:13 -0400; (No UCE/UBE) logging access from: mysite(OK)-mysite [192.168.0.12]
EHLO mysite.org <== introduce yourself
250-localhost Hello mysite [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
MAIL FROM: me@mysite.org <== 指定發件人
250 2.1.0 shs@mysite.org... Sender ok
RCPT TO: recip <== 指定收件人
250 2.1.5 recip... Recipient ok
DATA <== 郵件內容開始
354 Enter mail, end with "." on a line by itself
This is a test message. Please deliver it for me.
. <== 內容結束
250 2.0.0 x5CKWDds029287 Message accepted for delivery
quit <== 結束互動
向多個收件人傳送電子郵件
如果你希望通過 Linux 命令列向一大組收件人傳送電子郵件,你可以使用一個迴圈來幫助你完成任務,如下面應用在 mutt
中的例子:
$ for recip in `cat recips`
do
mutt -s "Minutes from May meeting" $recip < May_minutes
done
總結
有很多方法可以從 Linux 命令列傳送電子郵件。有些工具提供了相當多的選項。
via: https://www.networkworld.com/article/3402027/how-to-send-email-from-the-linux-command-line.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:Modrisco 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 在Linux命令列傳送電子郵件Linux命令列
- 傳送電子郵件的4個Linux命令列工具Linux命令列
- 在Linux命令列傳送電子郵件附件的兩種方法Linux命令列
- 4個可以傳送完整電子郵件的命令列工具命令列
- 電子郵件
- 利用命令列發郵件命令列
- 用ASP發電子郵件 (轉)
- 電子郵件“人到中年”
- 60. 電子郵件
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法
- Shayne Hughes:電子郵件引發效率低下
- 命令列郵件傳送工具命令列
- 電子郵件協議及GO傳送QQ郵件協議Go
- Linux 命令列傳送郵件的 5 種方法Linux命令列
- Linux基礎命令---mailq顯示郵件佇列LinuxAI佇列
- 電子郵件被黑客追蹤黑客
- 用oracle傳送電子郵件Oracle
- 如何保護電子郵件安全
- 安全使用電子郵件十三法
- Postfix電子郵件系統精要
- 救命!我的電子郵件發不到 500 英里以外!
- 直接用通訊錄Excel群發電子郵件Excel
- 純java開發的電子郵件客戶端Java客戶端
- 在 Linux 命令列傳送郵件的 5 種方法Linux命令列
- linux 發郵件Linux
- 郵件開發:電子郵件的傳輸過程、各種協議的說明協議
- 共享電子郵件的運作方式
- ADRMS保護電子郵件安全
- 管理電子郵件的7個方法
- 電子郵件管理的COTA法則
- 資訊圖:電子郵件的未來
- 直接用通訊錄Excel群發電子郵件(轉)Excel
- 電子郵件成“重災區”,如何有效防禦接連不斷的電子郵件攻擊
- 你的郵件安全嗎? 電子郵件威脅與防禦剖析
- 使用Linux命令傳送郵件Linux
- 玩轉展會電子郵件營銷
- 精通電子郵件的八個核心方法
- 用英文寫電子郵件的常用句式