當你需要在 shell 腳本中創(chuàng)建郵件時,就需要用到命令行發(fā)送郵件的知識。Linux 中有很多命令可以實現(xiàn)發(fā)送郵件。本教程中包含了最流行的 5 個命令行郵件客戶端,你可以選擇其中一個。這 5 個命令分別是:
工作原理我先從整體上來解釋下 Linux 中郵件命令怎么把郵件傳遞給收件人的。郵件命令撰寫郵件并發(fā)送給一個本地郵件傳輸代理(MTA,如 sendmail、Postfix)。郵件服務器和遠程郵件服務器之間通信以實際發(fā)送和接收郵件。下面的流程可以看得更詳細。 1) 如何在 Linux 上安裝 mail/mailx 命令mail 命令是 Linux 終端發(fā)送郵件用的最多的命令。mailx 是 mail 命令的更新版本,基于 Berkeley Mail 8.1,意在提供 POSIX mailx 命令的功能,并支持 MIME、IMAP、POP3、SMTP 和 S/MIME 擴展。mailx 在某些交互特性上更加強大,如緩沖郵件消息、垃圾郵件評分和過濾等。在 Linux 發(fā)行版上,mail 命令是 mailx 命令的軟鏈接??梢赃\行下面的命令從官方發(fā)行版?zhèn)}庫安裝 mail 命令。 對于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或 APT 命令 安裝 mailutils。 $ sudo apt-get install mailutils 對于 RHEL/CentOS 系統(tǒng),使用 YUM 命令 安裝 mailx。 $ sudo yum install mailx 對于 Fedora 系統(tǒng),使用 DNF 命令 安裝 mailx。 $ sudo dnf install mailx 1a) 如何在 Linux 上使用 mail 命令發(fā)送郵件mail 命令簡單易用。如果你不需要發(fā)送附件,使用下面的 mail 命令格式就可以發(fā)送郵件了: $ echo 'This is the mail body' | mail -s 'Subject' 2daygeek@gmail.com 如果你要發(fā)送附件,使用下面的 mail 命令格式: $ echo 'This is the mail body' | mail -a test1.txt -s 'Subject' 2daygeek@gmail.com
2) 如何在 Linux 上安裝 mutt 命令mutt 是另一個很受歡迎的在 Linux 終端發(fā)送郵件的命令。mutt 是一個小而強大的基于文本的程序,用來在 unix 操作系統(tǒng)下閱讀和發(fā)送電子郵件,并支持彩色終端、MIME、OpenPGP 和按郵件線索排序的模式??梢赃\行下面的命令從官方發(fā)行版?zhèn)}庫安裝 mutt 命令。 對于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或 APT 命令 安裝 mutt。 $ sudo apt-get install mutt 對于 RHEL/CentOS 系統(tǒng),使用 YUM 命令 安裝 mutt。 $ sudo yum install mutt 對于 Fedora 系統(tǒng),使用 DNF 命令 安裝 mutt。 $ sudo dnf install mutt 2b) 如何在 Linux 上使用 mutt 命令發(fā)送郵件mutt 一樣簡單易用。如果你不需要發(fā)送附件,使用下面的 mutt 命令格式就可以發(fā)送郵件了: $ echo 'This is the mail body' | mutt -s 'Subject' 2daygeek@gmail.com 如果你要發(fā)送附件,使用下面的 mutt 命令格式: $ echo 'This is the mail body' | mutt -s 'Subject' 2daygeek@gmail.com -a test1.txt 3) 如何在 Linux 上安裝 mpack 命令mpack 是另一個很受歡迎的在 Linux 終端上發(fā)送郵件的命令。mpack 程序會在一個或多個 MIME 消息中對命名的文件進行編碼。編碼后的消息被發(fā)送到一個或多個收件人。可以運行下面的命令從官方發(fā)行版?zhèn)}庫安裝 mpack 命令。 對于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或 APT 命令 安裝 mpack。 $ sudo apt-get install mpack 對于 RHEL/CentOS 系統(tǒng),使用 YUM 命令 安裝 mpack。 $ sudo yum install mpack 對于 Fedora 系統(tǒng),使用 DNF 命令 安裝 mpack。 $ sudo dnf install mpack 3a) 如何在 Linux 上使用 mpack 命令發(fā)送郵件mpack 同樣簡單易用。如果你不需要發(fā)送附件,使用下面的 mpack 命令格式就可以發(fā)送郵件了: $ echo 'This is the mail body' | mpack -s 'Subject' 2daygeek@gmail.com 如果你要發(fā)送附件,使用下面的 mpack 命令格式: $ echo 'This is the mail body' | mpack -s 'Subject' 2daygeek@gmail.com -a test1.txt 4) 如何在 Linux 上安裝 sendmail 命令sendmail 是一個上廣泛使用的通用 SMTP 服務器,你也可以從命令行用 sendmail 發(fā)郵件??梢赃\行下面的命令從官方發(fā)行版?zhèn)}庫安裝 sendmail 命令。 對于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或 APT 命令 安裝 sendmail。 $ sudo apt-get install sendmail 對于 RHEL/CentOS 系統(tǒng),使用 YUM 命令 安裝 sendmail。 $ sudo yum install sendmail 對于 Fedora 系統(tǒng),使用 DNF 命令 安裝 sendmail。 $ sudo dnf install sendmail 4a) 如何在 Linux 上使用 sendmail 命令發(fā)送郵件sendmail 同樣簡單易用。使用下面的 sendmail 命令發(fā)送郵件。 $ echo -e 'Subject: Test Mail\nThis is the mail body' > /tmp/send-mail.txt $ sendmail 2daygeek@gmail.com < send-mail.txt 5) 如何在 Linux 上安裝 ssmtp 命令ssmtp 是類似 sendmail 的一個只發(fā)送不接收的工具,可以把郵件從本地計算機傳遞到配置好的 郵件主機(mailhub)。用戶可以在 Linux 命令行用 ssmtp 把郵件發(fā)送到 SMTP 服務器??梢赃\行下面的命令從官方發(fā)行版?zhèn)}庫安裝 ssmtp 命令。 對于 Debian/Ubuntu 系統(tǒng),使用 APT-GET 命令 或 APT 命令 安裝 ssmtp。 $ sudo apt-get install ssmtp 對于 RHEL/CentOS 系統(tǒng),使用 YUM 命令 安裝 ssmtp。 $ sudo yum install ssmtp 對于 Fedora 系統(tǒng),使用 DNF 命令 安裝 ssmtp。 $ sudo dnf install ssmtp 5a) 如何在 Linux 上使用 ssmtp 命令發(fā)送郵件ssmtp 同樣簡單易用。使用下面的 ssmtp 命令格式發(fā)送郵件。 $ echo -e 'Subject: Test Mail\nThis is the mail body' > /tmp/ssmtp-mail.txt $ ssmtp 2daygeek@gmail.com < /tmp/ssmtp-mail.txt via: https://www./6-ways-to-send-email-from-the-linux-command-line/ |
|