ターミナルからメールを送信するには?


169

Linux / MacOSのターミナルからメールを送信する方法があることは知っていますが、それを行う方法に関する適切なドキュメントを見つけることができないようです。

基本的に、ファイルが変更されるたびに通知するbashスクリプトに必要です。


3
一部のホストおよびISPは、電子メールを送信する機能を「オフ」にすることに注意してください。スパムやフィッシング詐欺を阻止するための試みだと思います
ジムジェフリーズ

@JimJeffriesどれ?Amazon EC2ウェブサーバーを使用しています。
ckjbgames 2017

回答:


125

ターミナルに移動してman mail、ヘルプを入力します。

セットアップする必要がありますSMTP

http://hints.macworld.com/article.php?story=20081217161612647

以下も参照してください。

http://www.mactricksandtips.com/2008/09/send-mail-over-your-network.html

例えば:

mail -s "hello" "example@example.com" <<EOF
hello
world
EOF

これexample@example.comにより、件名helloとメッセージが記載された電子メールが送信されます

こんにちは

世界


試してみたところ、うまくいきましたが、好奇心から2つの質問があります。<<の意味、オンラインで「<」または「<<」の例をいくつか見ました。'何に使用しますか?そして、なぜあなたはそこにそしてメッセージの終わりにファイルの終わりを与えたのですか?
ディープ

「<< EOF」と「EOF」は「ヒアドキュメント」を示します。2つのEOFの間のテキストは、複数行で引用された文字列として扱われます。「man bash」で説明されています
Joe Inwap

134
echo "this is the body" | mail -s "this is the subject" "to@address"

20
このすべてのソリューションは、ローカルにMTAがインストールされていることを前提としています
Miquel

11
@ミケル良い点。Ubuntuでは、前提条件をから取得できますsudo apt-get install mailutils
Earldouglas

3
?@James、それは私のMAC(((あなたは私を助けてもらえための作業ではありません
ネオ

1
ステップバイステップのチュートリアル:rianjs.net/2013/08/...
ドゥシャンマダラ

奇妙な。これにより、「SyntaxError:invalid syntax」というメッセージが表示されますが、私が行った唯一の変更はアドレスの変更でした。
Jewenile 2017

41

必要なのが件名だけの場合(警告メッセージの場合など)は、次のようにします。

mailx -s "This is all she wrote" < /dev/null "myself@myaddress"

をインストールする必要がある場合がありmailutilsます。これは、パッケージマネージャを介してインストールすることができます(例えば。apt install mailutils
ジーヴァンタハールを

31

おそらくcurlこれを使用するのが最も簡単な方法でしょう。追加のパッケージをインストールする必要はなく、リクエストで直接設定できます。

以下は、Gmail SMTPサーバーを使用した例です。

curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
  --mail-from 'from-email@gmail.com' \
  --mail-rcpt 'to-email@gmail.com' \
  --user 'from-email@gmail.com:YourPassword' \
  -T <(echo -e 'From: from-email@gmail.com\nTo: to-email@gmail.com\nSubject: Curl Test\n\nHello')

これは本当に良いオプションです。あなたはあなたのグーグルアカウントのためにアプリ特有のパスワードを生成することができ、これはあなた自身のアカウントからのメールを配信するだけです。とてもかっこいい!
ダクダッド

2
すばらしい回答です。最後に、安全性の低いアプリをオンにして作業を行うことを忘れないでくださいmyaccount.google.com/lesssecureapps
yubaraj poudel

@aliaksandrは、この最後のポイントを彼の回答に追加する必要があります。デフォルトでは、このオプション(安全性の低いアプリへのアクセスを許可)は無効になっており、明白ではありません。少なくとも、送信者のメールとしてGmailアカウントを使用している場合。
EAmez

18

Linuxでファイルを添付する場合

echo 'mail content' | mailx -s 'email subject' -a attachment.txt username@stackoverflow.com

4
これは、与えinvalid header私の添付ファイルのメッセージを。正しいオプションは大文字-Aでした。
ステファン2017

3
@Stephane patrick-haughによると、-aはアタッチメントスイッチです。-Aはアカウントコマンド用です。manページを参照してください:linux.die.net/man/1/mailx
MiaeKim

10

あなたのMac OSまたはLinux OSのターミナルでこのコードを入力してください

mail -s (subject) (receiversEmailAddress)  <<< "how are you?"

例としてこれを試してください

mail -s "hi" abc@example.com <<< "how are you?"<br>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.