在 Linux 命令列傳送郵件的 5 種方法
當你需要在 shell 指令碼中建立郵件時,就需要用到命令列傳送郵件的知識。Linux 中有很多命令可以實現傳送郵件。本教程中包含了最流行的 5 個命令列郵件客戶端,你可以選擇其中一個。這 5 個命令分別是:
mail
/mailx
mutt
mpack
sendmail
ssmtp
工作原理
我先從整體上來解釋下 Linux 中郵件命令怎麼把郵件傳遞給收件人的。郵件命令撰寫郵件併傳送給一個本地郵件傳輸代理(MTA,如 sendmail、Postfix)。郵件伺服器和遠端郵件伺服器之間通訊以實際傳送和接收郵件。下面的流程可以看得更詳細。
1) 如何在 Linux 上安裝 mail/mailx 命令
mail
命令是 Linux 終端傳送郵件用的最多的命令。mailx
是 mail
命令的更新版本,基於 Berkeley Mail 8.1,意在提供 POSIX mailx
命令的功能,並支援 MIME、IMAP、POP3、SMTP 和 S/MIME 擴充套件。mailx 在某些互動特性上更加強大,如緩衝郵件訊息、垃圾郵件評分和過濾等。在 Linux 發行版上,mail
命令是 mailx
命令的軟連結。可以執行下面的命令從官方發行版倉庫安裝 mail
命令。
對於 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令 安裝 mailutils。
$ sudo apt-get install mailutils
對於 RHEL/CentOS 系統,使用 YUM 命令 安裝 mailx。
$ sudo yum install mailx
對於 Fedora 系統,使用 DNF 命令 安裝 mailx。
$ sudo dnf install mailx
1a) 如何在 Linux 上使用 mail 命令傳送郵件
mail
命令簡單易用。如果你不需要傳送附件,使用下面的 mail
命令格式就可以傳送郵件了:
$ 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
:指定訊息標題。
2) 如何在 Linux 上安裝 mutt 命令
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
2b) 如何在 Linux 上使用 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
3) 如何在 Linux 上安裝 mpack 命令
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
3a) 如何在 Linux 上使用 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
4) 如何在 Linux 上安裝 sendmail 命令
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
4a) 如何在 Linux 上使用 sendmail 命令傳送郵件
sendmail
同樣簡單易用。使用下面的 sendmail
命令傳送郵件。
$ 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
的一個只傳送不接收的工具,可以把郵件從本地計算機傳遞到配置好的 郵件主機(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
5a) 如何在 Linux 上使用 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: https://www.2daygeek.com/6-ways-to-send-email-from-the-linux-command-line/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:lxbwolf 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- Linux 命令列傳送郵件的 5 種方法Linux命令列
- 在Linux命令列傳送電子郵件附件的兩種方法Linux命令列
- 在Linux命令列傳送電子郵件Linux命令列
- 命令列郵件傳送工具命令列
- Linux基礎命令---sendmail傳送郵件LinuxAI
- Spring Boot 郵件傳送的 5 種姿勢!Spring Boot
- Laravel 5.7 以佇列方法傳送郵件(三種場景)Laravel佇列
- Laravel 佇列傳送郵件Laravel佇列
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法
- Python 傳送郵件的幾種方式Python
- 兩種go傳送郵件的方式Go
- 郵件的傳送
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 郵件傳送
- 傳送郵件
- oracle 傳送郵件 實現方法Oracle
- Ubuntu的郵件傳送Ubuntu
- Linux Centos7傳送QQ郵件LinuxCentOS
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 在Python如何使用SMTP傳送郵件Python
- Laravel 佇列訊息與傳送郵件Laravel佇列
- java郵件傳送Java
- python傳送郵件Python
- Django——郵件傳送Django
- gmail傳送郵件AI
- phpcms傳送郵件PHP
- Laravel 傳送郵件Laravel
- thinkjs 傳送郵件JS
- SpringBoot傳送郵件Spring Boot
- SpringBoot郵件傳送Spring Boot
- Laravel傳送郵件Laravel
- PHP傳送郵件PHP
- nodejs 傳送郵件NodeJS
- golang傳送郵件(qq郵箱)Golang
- Android 快速傳送郵件Android
- 使用phpmailer傳送郵件PHPAI
- SpringBoot傳送郵件(二)Spring Boot
- SpringBoot傳送郵件(三)Spring Boot