當你須要在 shell 腳本中建立郵件時,就須要用到命令行發送郵件的知識。Linux 中有不少命令能夠實現發送郵件。本教程中包含了最流行的 5 個命令行郵件客戶端,你能夠選擇其中一個。這 5 個命令分別是:linux
mail
/ mailx
mutt
mpack
sendmail
ssmtp
我先從總體上來解釋下 Linux 中郵件命令怎麼把郵件傳遞給收件人的。郵件命令撰寫郵件併發送給一個本地郵件傳輸代理(MTA,如 sendmail、Postfix)。郵件服務器和遠程郵件服務器之間通訊以實際發送和接收郵件。下面的流程能夠看得更詳細。git
mail
命令是 Linux 終端發送郵件用的最多的命令。mailx
是 mail
命令的更新版本,基於 Berkeley Mail 8.1,意在提供 POSIX mailx
命令的功能,並支持 MIME、IMAP、POP三、SMTP 和 S/MIME 擴展。mailx 在某些交互特性上更增強大,如緩衝郵件消息、垃圾郵件評分和過濾等。在 Linux 發行版上,mail
命令是 mailx
命令的軟連接。能夠運行下面的命令從官方發行版倉庫安裝 mail
命令。github
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令 安裝 mailutils。shell
$ sudo apt-get install mailutils
複製代碼
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 mailx。ubuntu
$ sudo yum install mailx
複製代碼
對於 Fedora 系統,使用 DNF 命令 安裝 mailx。centos
$ sudo dnf install mailx
複製代碼
mail
命令簡單易用。若是你不須要發送附件,使用下面的 mail
命令格式就能夠發送郵件了:bash
$ echo "This is the mail body" | mail -s "Subject" 2daygeek@gmail.com
複製代碼
若是你要發送附件,使用下面的 mail
命令格式:服務器
$ echo "This is the mail body" | mail -a test1.txt -s "Subject" 2daygeek@gmail.com
複製代碼
-a
:用於在基於 Red Hat 的系統上添加附件。-A
:用於在基於 Debian 的系統上添加附件。-s
:指定消息標題。mutt
是另外一個很受歡迎的在 Linux 終端發送郵件的命令。mutt
是一個小而強大的基於文本的程序,用來在 unix 操做系統下閱讀和發送電子郵件,並支持彩色終端、MIME、OpenPGP 和按郵件線索排序的模式。能夠運行下面的命令從官方發行版倉庫安裝 mutt
命令。併發
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令 安裝 mutt。工具
$ sudo apt-get install mutt
複製代碼
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 mutt。
$ sudo yum install mutt
複製代碼
對於 Fedora 系統,使用 DNF 命令 安裝 mutt。
$ sudo dnf install mutt
複製代碼
mutt
同樣簡單易用。若是你不須要發送附件,使用下面的 mutt
命令格式就能夠發送郵件了:
$ echo "This is the mail body" | mutt -s "Subject" 2daygeek@gmail.com
複製代碼
若是你要發送附件,使用下面的 mutt
命令格式:
$ echo "This is the mail body" | mutt -s "Subject" 2daygeek@gmail.com -a test1.txt
複製代碼
mpack
是另外一個很受歡迎的在 Linux 終端上發送郵件的命令。mpack
程序會在一個或多個 MIME 消息中對命名的文件進行編碼。編碼後的消息被髮送到一個或多個收件人。能夠運行下面的命令從官方發行版倉庫安裝 mpack
命令。
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令 安裝 mpack。
$ sudo apt-get install mpack
複製代碼
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 mpack。
$ sudo yum install mpack
複製代碼
對於 Fedora 系統,使用 DNF 命令 安裝 mpack。
$ sudo dnf install mpack
複製代碼
mpack
一樣簡單易用。若是你不須要發送附件,使用下面的 mpack
命令格式就能夠發送郵件了:
$ echo "This is the mail body" | mpack -s "Subject" 2daygeek@gmail.com
複製代碼
若是你要發送附件,使用下面的 mpack 命令格式:
$ echo "This is the mail body" | mpack -s "Subject" 2daygeek@gmail.com -a test1.txt
複製代碼
sendmail 是一個上普遍使用的通用 SMTP 服務器,你也能夠從命令行用 sendmail
發郵件。能夠運行下面的命令從官方發行版倉庫安裝 sendmail
命令。
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令安裝 sendmail。
$ sudo apt-get install sendmail
複製代碼
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 sendmail。
$ sudo yum install sendmail
複製代碼
對於 Fedora 系統,使用 DNF 命令 安裝 sendmail。
$ sudo dnf install sendmail
複製代碼
sendmail
一樣簡單易用。使用下面的 sendmail
命令發送郵件。
$ echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/send-mail.txt
複製代碼
$ sendmail 2daygeek@gmail.com < send-mail.txt
複製代碼
ssmtp
是相似 sendmail
的一個只發送不接收的工具,能夠把郵件從本地計算機傳遞到配置好的 郵件主機(mailhub)。用戶能夠在 Linux 命令行用 ssmtp
把郵件發送到 SMTP 服務器。能夠運行下面的命令從官方發行版倉庫安裝 ssmtp
命令。
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令安裝 ssmtp。
$ sudo apt-get install ssmtp
複製代碼
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 ssmtp。
$ sudo yum install ssmtp
複製代碼
對於 Fedora 系統,使用 DNF 命令 安裝 ssmtp。
$ sudo dnf install ssmtp
複製代碼
ssmtp
一樣簡單易用。使用下面的 ssmtp
命令格式發送郵件。
$ echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/ssmtp-mail.txt
複製代碼
$ ssmtp 2daygeek@gmail.com < /tmp/ssmtp-mail.txt
複製代碼
via: www.2daygeek.com/6-ways-to-s…
做者:Magesh Maruthamuthu 選題:lujun9972 譯者:lxbwolf 校對:wxy