0

HTTP経由でサーバーにファイルをアップロードするプログラム(Androidではクライアント側、PHPではサーバー側)を作成しました。さまざまな理由により、SSH ですべてを行うようにシステムを変更する必要がありました (特にセキュリティのため)。

基本をセットアップしました(Androidでjschを使用)。しかし、PHP の mail() 関数に相当するものを実装したいと考えています。ファイルがアップロードされると、もともと私のPHPファイルは、サーバーから特定のアドレスにメールを自動的に送信します。

サーバー上のシェル内でこれを実装する方法を見つけるのに苦労しています。問題は、SSH でサーバーから電子メールを自動的に送信するにはどうすればよいかということです。

編集:サーバーがCentOSであることを忘れていました。

4

1 に答える 1

0

SSH 自体にはメール機能はありません。シェル アクセス (X および SSH エージェント転送を含む可能性があります)、ファイル転送 (またはサーバーに統合される可能性のある他のサブシステム)、およびポート転送のみをサポートします。

したがって、基本的に次のオプションがあります。

  • Marc からのコメントに記載されているように、メールを送信するサーバー側のシェル コマンドを呼び出します。これはshellchannelを使用します。

  • ポート転送を使用して、サーバー ホスト (またはそこからのメールを受け入れる任意のホスト) 上の SMTP サーバーにアクセスします。

    JSch を使用する同じプログラムから送信する場合は、実際にクライアント側のポート転送を行う必要はなく、代わりにdirect-tcpipchannelを使用し、接続する前にそのホストとポートのプロパティを設定します。

    次に、SMTP プロトコルを自分で実装するか、SMTP をサポートする他のライブラリを使用する必要があります。(JavaMail でこれができると思いますが、JSch をトンネルとして使用するように JavaMail を構成する方法については調べませんでした。)

于 2011-09-14T16:42:36.250 に答える