コマンドラインで電子メールを送信するためのコマンドmail
がLinuxにあることを私は知っています。端末から1行で簡単なEメールを送信するにはどうすればいいですか?
例えば:
mail [email protected] [subject] [body]
そして確認もユーザーへのプロンプトもなしにEメールを送信しましたか?
その理由は、Java
プログラムで特定のイベントが発生したときに、私自身に電子メールで短いメッセージを送りたいということです。私のJava
プログラムからmail command
を送信するためにRuntime.getRuntime()
...などを使うつもりです。
私はcron
を使ってこれまでと似たようなことをしましたが、現在の実装ではcron
を使っていませんので、代わりに試してみる必要があります。
mail はLinuxシステム上でかなりの数のプログラムを表すことができます。その背後に欲しいのは sendmail または postfix のどちらかです。私は後者をお勧めします。
あなたはあなたのお気に入りのパッケージマネージャを通してそれをインストールすることができます。それから、あなたはそれを設定しなければなりません、そして、あなたがそれをしたら、あなたはこのように電子メールを送ることができます:
echo "My message" | mail -s subject [email protected]
詳しくはマニュアルを参照してください。
Postfixの設定に関する限り、インターネット上にそれを行う方法についての記事がたくさんあります。登録ドメインを持つパブリックサーバーを使用しているのでない限り、通常はEメールを送信元のSMTPサーバーに転送します。
例えばgmailの場合は、 http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ またはその他の同様のチュートリアルに従ってください。
プロンプトや確認を避けるために、パイプでエコーを使用することができます。
echo "This is the body" | mail -s "This is the subject" [email protected]
echo "Subject: test" | /usr/sbin/sendmail [email protected]
これにより、テキストファイルをエコーすることなく1つのコマンドラインで実行できます。この回答は@ mti2935の回答に基づいています。だから信用はそこに行きます。
Sendmailを使うこともできます。
/usr/sbin/sendmail [email protected] < /file/to/send
Ubuntuユーザーの方へ:まずmailutilsをインストールする必要があります
Sudo apt-get install mailutils
Gmailまたはsmtpを使用している場合は、電子メールサーバーを設定してください。 follow このリンク 。その後、このコマンドを使ってEメールを送信します。
echo "this is a test mail" | mail -s "Subject of mail" [email protected]
Gmailを使用していて、それでも認証エラーが発生する場合は、gmailの設定を変更する必要があります。
安全性の低いアプリのアクセスを有効にする ここから
以下のコマンドでメールパッケージをUbuntuにインストールすることができます。
Ubuntuの場合 -
$ Sudo apt-get install -y mailutils
CentOs-の場合:
$ Sudo yum install -y mailx
メールテストコマンド - :
$ echo "Mail test" | mail -s "Subject" [email protected]