web-dev-qa-db-ja.com

linux端末からメールを一行で送る

コマンドラインで電子メールを送信するためのコマンドmailがLinuxにあることを私は知っています。端末から1行で簡単なEメールを送信するにはどうすればいいですか?

例えば:

mail [email protected] [subject] [body]

そして確認もユーザーへのプロンプトもなしにEメールを送信しましたか?

その理由は、Javaプログラムで特定のイベントが発生したときに、私自身に電子メールで短いメッセージを送りたいということです。私のJavaプログラムからmail commandを送信するためにRuntime.getRuntime() ...などを使うつもりです。

私はcronを使ってこれまでと似たようなことをしましたが、現在の実装ではcronを使っていませんので、代わりに試してみる必要があります。

136
cHam

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/ またはその他の同様のチュートリアルに従ってください。

189
PSkocik

プロンプトや確認を避けるために、パイプでエコーを使用することができます。

echo "This is the body" | mail -s "This is the subject" [email protected]
34
richardson
echo "Subject: test" | /usr/sbin/sendmail [email protected]

これにより、テキストファイルをエコーすることなく1つのコマンドラインで実行できます。この回答は@ mti2935の回答に基づいています。だから信用はそこに行きます。

27
Hengjie

Sendmailを使うこともできます。

/usr/sbin/sendmail [email protected] < /file/to/send
11
mti2935

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の設定を変更する必要があります。

安全性の低いアプリのアクセスを有効にする ここから

10
Rohit Gupta

以下のコマンドでメールパッケージをUbuntuにインストールすることができます。

Ubuntuの場合 -

$ Sudo apt-get install -y mailutils

CentOs-の場合:

$ Sudo yum install -y mailx

メールテストコマンド - :

$ echo "Mail test" | mail -s "Subject" [email protected]
5