メールを送信するためのBashスクリプト

Bash Script Send Email



電子メールは、今日の世界で非常に一般的なコミュニケーション媒体です。メールを送信することで、誰でも簡単にドキュメントを友人、家族、同僚とやり取りしたり共有したりできます。一般的に、人々はメールを送信するためにGmail、Yahoo、Hotmailなどのような無料のメールサーバーを使用します。ただし、Linuxオペレーティングシステムでは、コマンドラインから簡単に電子メールを送信できます。 Linuxでメールを送信する方法はたくさんあります。このチュートリアルでは、Ubuntuオペレーティングシステムでターミナルから電子メールを送信するための一般的で簡単な方法をいくつか示します。

初期化:

多くのLinuxコマンドは、コマンドラインから、またはbashスクリプトを使用して電子メールを送信するために使用できます。ただし、システムにSMTPサーバーが正しく設定されていない場合、電子メール送信コマンドは機能しません。コマンドラインからメールを送信するように独自のSMTPサーバーを設定することも、GmailやYahooなどの有名なメールサービスプロバイダーの無料のSMTPサーバーを使用することもできます。このチュートリアルでは、GmailアカウントのSMTPサーバーを使用します。このタスクを実行するには、Gmailアカウントを選択し、そのアカウントで[安全性の低いアプリを許可する]オプションを有効にしてメールを送信する必要があります。このオプションを有効にするには、次のチュートリアルにアクセスしてください。







https://linuxhint.com/how-to-send-email-from-php/



このオプションを有効にした後、「root」権限でファイル「/etc/ssmtp/ssmtp.conf」を開き、ファイルの最後に次の行を追加する必要があります。セットアップを完了するには、メールアドレスを「AuthUser」に設定し、メールパスワードを「AuthPass」に設定する必要があります。



UseSTARTTLS=はい
FromLineOverride=はい
= admin@example.com
mailhub= smtp.gmail.com:587
AuthUser=ユーザー名@gmail.com
AuthPass=パス​​ワード

例-1:Sendmailコマンドの使用

Linuxの人気のある電子メール送信コマンドの1つは `sendmail`です。ユーザーは、このコマンドを使用して、コマンドラインから簡単に電子メールを送信できます。 Sendmailパッケージがシステムにインストールされていない場合は、次のコマンドを実行してパッケージをインストールします。





$sudoaptインストールssmtp

メールの内容が「email.txt」という名前のファイルに次の内容で保存されているとします。ここでは、「件名:」の後のテキストがメールの件名として送信され、残りの部分がメールの本文として送信されます。

email.txt



件名:sendmailを使用してメールを送信する
メール本文のテスト

次のコマンドのように、受信者のメールアドレスを指定して「sendmail」コマンドを実行します。

$sendmailユーザー名@gmail.com<email.txt

例2:「mail」コマンドの使用

Linuxで電子メールを送信するための最も一般的なコマンドは `mail`コマンドです。このコマンドはデフォルトではUbuntuにインストールされていません。次のコマンドを実行して、 `mail`コマンドをインストールします。

$sudoaptインストールmailutils

次のコマンドは、このコマンドがシステムにインストールされている場合のバージョンを示します。

$郵便物-V

「-s」オプションは、メールの件名を定義するために「mail」コマンドで使用されます。次のコマンドのように、メールの件名と受信者のメールアドレスを指定して「-s」オプションで「mail」コマンドを実行します。 Cc:アドレスを要求します。 Cc:フィールドを使用しない場合は、空白のままにしてEnterキーを押します。メッセージ本文を入力し、Ctrl + Dを押して電子メールを送信します。

$郵便物-NS '主題'ユーザー名@gmail.com

コマンドにメールメッセージ本文を追加する場合は、「<<<’ operator like the following command.

$郵便物-NS 「メッセージの件名」ユーザー名@gmail.com<<< 「メッセージ本文のテスト」

「-a」オプションを使用して、「mail」コマンドで送信者の電子メールアドレスを追加することもできます。次のコマンドは、件名「メッセージの件名」、送信者の名前、メールアドレス「管理者」を含むメールを送信します<[メール保護]> ’と受信者のメールアドレス、[メール保護]メッセージ本文、「テストメッセージ」。

$メール-NS 「メッセージの件名」 -にFrom:Admin <管理者@example.com >>
ユーザー名@gmail.com<<< 「テストメッセージ」

echoおよびpipe(|)コマンドを使用して、電子メールメッセージの本文を送信することもできます。次のコマンドは、パイプ(|)コマンドを使用してメッセージ本文を送信します。

$捨てた 「テストメッセージ」 |郵便物-NS 「メッセージの件名」ユーザー名@example.com

`mail`コマンドを使用し、カンマで区切って受信者のアドレスを追加することにより、複数の受信者に電子メールを送信できます。次のコマンドは、2人の受信者に電子メールを送信します。

$郵便物-NS 「テストメール」username1@example.com、username2@example.com<test.txt

例-3: `mutt`コマンドの使用

`mail`コマンドと同様に、` mutt`コマンドはデフォルトではUbuntuにインストールされていません。次のコマンドを実行して、 `mutt`コマンドをインストールします。

$sudoaptインストール雑種

`mutt`コマンドは` mail`コマンドと同様に機能しますが、 `mutt`コマンドにはメールを送信するための独自のエディターがあります。有効な電子メールアドレスを指定して次のコマンドを実行し、電子メールを送信します。

$捨てたテストメッセージ|雑種-NS 「テストメール」ユーザー名@example.com

`mail`または` mutt`コマンドで「-a」オプションを使用して任意のファイルを添付できます。次のコマンドは、電子メールの送信中にファイルitems.txtを添付します。

$捨てた 「テストメッセージ」 |雑種-NS 「メッセージの件名」 -にitems.txt-ユーザー名@gmail.com

例-4:「SSMTP」コマンドの使用

別の電子メールコマンドは `ssmtp`コマンドです。以前にssmtpがインストールされていない場合は、最初にパッケージをインストールしてください。 ssmtpのインストールコマンドを例1に示します。 ssmtpコマンドとsendmailコマンドは同様に機能します。

有効な電子メールアドレスを使用して次のコマンドを実行します。メールの件名と本文を入力します。 Ctrl + Dキーを押して終了し、メールを送信します。

$ssmtpユーザー名@gmail.com

例-5:mailxコマンドの使用

テキストメッセージを送信するだけでなく、HTMLコンテンツをメール本文として送信できます。メッセージ本文として使用する「test.html」という名前のHTMLファイルを作成します。

test.html

< html >>
< >>>>
< h3 >>メール送信</ h3 >>
< 作る サイズ=「2」 ='ネット'>>メッセージ本文のテスト</ 作る >>
<</ >>
</ html >>

`mailx`コマンドは` mail`コマンドのように機能します。 `mailx`コマンドでメッセージ本文としてHTMLコンテンツを送信するには、Content-Typeをtext / htmlとして指定する必要があります。次のコマンドは、「test.html」ファイルの内容を電子メールメッセージの本文として送信します。

$ mailx-に 'Content-Type:text / html' -NS 「mailxを使用してメールを送信する」
<test.html'[メール保護]'

受信者のメールアカウントの受信トレイを確認すると、メールのリストが次の画像のように表示されます。

結論

上記のコマンドを適切に実行した後、読者がLinuxでコマンドラインから簡単に電子メールを送信できるようになることを願っています。