Linuxのコマンドラインからメールを送信する
この記事では、人気のあるメールコマンドを使用してメールを送信する方法を学びます。同様に重要なのは、Linuxのメール添付ファイルの送信方法も学ぶことです。使用されるコマンドラインオプションの一部は次の通りです。
- -s: denotes the mail’s subject
- -a: for denoting attachment
- -c: for the copy email address (CC)
- -b: for the blind copy email address (BCC)
コマンドラインからLinuxでメールを送信
私たちはLinuxでメールを送信するための以下のコマンドについて学びます。
-
- メール
-
- メールエックス
-
- マット
-
- エムパック
- センドメール
「mailコマンドを使用する」
Linuxのメールコマンドは非常に人気があり、コマンドラインから電子メールを送信するためによく使用されています。Debianシステムでは、mailはmailutilsパッケージとして、Redhatシステムではmailxパッケージとしてインストールされます。これらの2つのコマンドは、コマンドライン上でメッセージを処理します。DebianとUbuntuシステムでmailutilsをインストールするには、次のコマンドを実行してください。
$ sudo apt install mailutils -y
CentOSとRedHatディストリビューションで実行してください。
$ yum install mailx
![Internet Site option mail command](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/10-1.png)
メールコマンドのテスト
もしメールのコマンドが成功してインストールされている場合は、以下の形式でアプリケーションをテストし、エンターキーを押してください。
$ mail –s "Test Email" email_address
メールアドレスを自分のメールアドレスで置き換えてください。例えば、[email address] と入力してください。
$ mail –s "Test Email" james@example.com
![Linux send email example](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/16-1.png)
$ echo "sample message" | mail -s "sample mail subject" email_address
たとえば、
$ echo "Hello world" | mail -s "Test" james@example.com
![Linux email with subject](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/20-0.png)
$ mail -s "subject" -A message.txt email_address
-Aフラグは、ファイルの添付を定義します。例えば、
$ mail -s "Important Notice" -A message.txt james@example.com
![Linux email with attachment](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/24-1.png)
$ mail –s "test header" email_address email_address2
2. メールXコマンドを使用する
Mailxは、mailコマンドの新しいバージョンで、他の実装では以前はnailと呼ばれていました。Mailxは1986年から存在しており、1992年にPOSIXに組み込まれました。Mailxは、さまざまなシナリオで使用されるDebianのmail compoundパッケージの一部です。このメールユーティリティは、ユーザー、システム管理者、開発者が使用することができます。また、mailxの実装は、mailコマンドラインの構文と同じ形式で行われます。Debian/Ubuntuシステムでmailxをインストールするには、以下のコマンドを実行します。
$ sudo apt install mailx
RedHatとCentOSにmailxをインストールするには、次のコマンドを実行してください。
$ yum install mailx
メールXコマンドのテスト
こちらの例のように、メッセージのボディやCCの入力を求められずに、出力をメールコマンドに直接指定するために、エコーコマンドを使用することができます。
$ echo "message body" | mail -s "subject" email_address
たとえば、
$ echo "Make the most out of Linux!" | mail -s "Welcome to Linux" james@example.com
3. MUTTコマンドの使用方法
Muttは軽量なLinuxコマンドラインメールクライアントです。基本的な操作を行うことができる「mail」コマンドとは異なり、muttはファイル添付も送信できます。また、muttはPOP/IMAPサーバーからのメールの受信や、ターミナルを介したローカルユーザーとの連携も可能です。Debian / Ubuntuシステムでmuttをインストールするには、次のコマンドを実行してください。
$ sudo apt install mutt
Redhat / CentOSシステムにmuttをインストールするには、以下のコマンドを実行します。
$ sudo yum install mutt
マットコマンドをテストしています。
メールアドレスの直後に、< /dev/null を使用してmuttで空メッセージを送信することができます。
$ mutt -s "Test Email" email_address < /dev/null
たとえば、
$ mutt -s "Greetings" james@example.com < /dev/null
![Mutt Blank Email](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/46-0.png)
$ echo "Message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- email_address
たとえば、
$ echo "Hey guys! How's it going ?" | mutt -a report.doc -s "Notice !" -- james@jaykiarie.com
![Mutt Email File Attached](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/50-1.png)
4. mpackコマンドを使用する
mpackコマンドは、ファイルをMIMEメッセージにエンコードし、1つまたは複数の受信者に送信するために使用されます。また、異なるニュースグループに投稿するためにも使用することができます。Debian / Ubuntu システムにmpackをインストールするには、次のコマンドを実行してください。
$ sudo apt install mpack
Redhat / CentOSシステムにmpackをインストールするには、次のコマンドを実行してください。
$ sudo yum install mpack
mpackコマンドのテスト
mpackを使ってコマンドラインでメールや添付ファイルを送信するのはとても簡単です。
$ mpack -s "Subject here" -a file email_address
たとえば、
$ mpack -s "Sales Report 2019" -a report.doc james@jaykiarie.com
![Linux Mpack Send Email Attach File](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/61-1.png)
5. sendmailを使用する
このコマンドは、多くのディストリビューションで使用されている人気のある別のSMTPサーバーです。Debian/ Ubuntuシステムにsendmailをインストールするには、次のコマンドを実行してください。
$ sudo apt install sendmail
RedHat / CentOSシステムにsendmailをインストールするには、次のコマンドを実行してください。
$ sudo yum install sendmail
sendmailコマンドのテスト
sendmailコマンドを使用してメールを送信するために、以下の手順を使用できます。
$ sendmail email_address < file
例えば、私は以下のテキストを含んだreport.docというファイルを作成しました。
Hello there !
メッセージを送信するためのコマンドは、
$ sendmail < report.doc james@example.com
![Sendmail Output](https://cdn.silicloud.com/blog-img/blog/img/65649ae4daa94e2bdf7c1498/74-0.png)
以下を日本語でパラフレーズする(一つのオプションで十分):
要約
コマンドラインのメールクライアントは、シンプルで計算量も少ないですが、個人のメールドメインにのみメールを送信することができます。GmailやYahooドメインには追加の認証が必要なため、送信することはできません。また、外部のSMTPサーバーからのメールを受信することもできません。メールが届かない問題を避けるためには、ThunderbirdやEvolutionのようなGUIメールクライアントを使用する方がずっと簡単です。