-1

私はこれをどこに投稿すべきか本当にわかりませんが、これが間違った場所である場合、誰かが私に答えを得ることができる場所を教えてもらえますか?自分の電子メールアドレスにコマンドを送信できるようにし、メッセージの送信時にコマンドを解析して実行できるようにしたい。つまり、私は電子メールを送信し、それはこれを含んでいます:

  public class sentThruEmail {
      public static void main(String[] args) {
          System.out.println("Hello");
      }
  }

送信されたアドレスから新しい電子メールが届いたことを認識し、それを開き、コンパイル(この場合はJavaをコンパイル)してから、プログラムが実行されているマシンで実行するようにプログラムを構成したいと思います。これを行う方法を理解するにはどうすればよいですか?どんな助けでも素晴らしいでしょう、ありがとう!

編集:あるいは、最初のステップは、アドレスから受信した電子メールをどのように認識するかということでしょうか?Javaでは、どうすればそれを実現できますか。電子メールが受信されたことを認識し、画面に何かを出力して事実を警告します。

4

3 に答える 3

2

これは非常に悪い考えです。信頼できないソースからの電子メールを盲目的に受け入れ、コンパイルし、実行することは、大きなセキュリティホールです。

于 2012-10-15T19:43:52.193 に答える
1

ただし、それを実行したい場合は、電子メールプロバイダーに接続する必要があるため(ターミナルログインを許可している場合)、ソケットプログラミングを調べてください。

于 2012-10-15T19:44:56.920 に答える
1

これには、考慮すべきいくつかの部分があります。

安全

他の人が言及しているように、ここでは考慮すべきセキュリティリスクがあります。それが心配な場合(そしてそうすべきです!)、次のいくつかを検討することをお勧めします。

  • これらの「コマンド」電子メールにデジタル署名し、電子メールを見る前にその署名を確認します
    • PGPはこのための人気のある選択肢です
  • chrootされたり、刑務所に入れられたりするなど、「サンドボックス」環境でプログラム(電子メールを読み取る)を実行する
  • 非常に限られたコマンドのセットのみを実行します-おそらくあなたが発明したものだけです。

メールを受け取る

それでもこれを実行したい場合は、セキュリティの問題を考慮して、メールを読み取るためのプログラムが必要になります。

おそらく、これにはIMAP、つまりPOPを使用することをお勧めします。

構文解析

メールを受け取ったら、内容を解析する必要があります。コードを送信するだけの場合は、直接コンパイルすることができます。コードを特定のMIMEタイプの添付ファイルとして送信して、コードを識別することもできます。そうすれば、「通常の」電子メールを送信できますが(おそらく、このコードの目的についての解説付き)、プログラムはコードをきれいに分離することができます。

応答する

結果をどのように伝えますか?それとも気にしますか?

返信メールを送信するか(SMTPを使用)、Webページを更新することをお勧めします。Webサーバーをローカルで実行している場合は、ファイルを直接書き込むことができるため、Webページは便利です。

  • 標準の「確認メール」システムは、あなたが説明するものと多くの類似点があります。誰かが自動化されたシステムに電子メールを送信し、それを読み取り、処理を行い、返信します。それらのシステムを探し回れば、きっと始められると思います。

  • 私はExquisiteCorpseEmailerプロジェクトを作成しました。これは、あなたが説明することの多くを実行します(ただし、Perlで)。限られたコマンドのごく一部しか受け入れませんが、IMAPで電子メールアドレスをリッスンし、テキストを解析し、結果としてデータベースを更新します。

于 2012-10-15T19:49:37.440 に答える