2011-09-14 4 views
0

HTTP를 통해 서버에 파일을 업로드하는 프로그램 (Android 측, 클라이언트 측 및 PHP 측)을 작성했습니다. 여러 가지 이유들로 인해 나는 (다른 것들 사이의 보안을 위해) SSH에서 모든 것을하기 위해 시스템을 변경해야했습니다.서버에서 SSH를 통해 메일 보내기

저는 기본 설정을했습니다 (Android에서는 jsch를 사용함). 하지만 PHP mail() 함수와 동일한 기능을 구현하려고합니다. 파일을 업로드 할 때 원래 PHP 파일은 자동으로 서버에서 특정 주소로 메일을 보냅니다.

서버의 셸 내에서이를 구현하는 방법을 찾기 위해 고심하고 있습니다. 그래서 질문은, 어떻게 자동으로 서버에서 SSH로 이메일을 보내나요?

편집 : 서버가 CentOS라고 언급하는 것을 잊었습니다.

+0

어떤 서버 OS입니까? 리눅스? 시작 지점 : ['mail'] (http://unixhelp.ed.ac.uk/CGI/man-cgi?mail) –

+0

편집 –

+0

를 보아라.'echo 'file is here'| mail [email protected] -s "파일이 있습니다!" –

답변

0

SSH 자체에는 셸 액세스 (X 및 SSH 에이전트 전달 포함), 파일 전송 (또는 서버에 통합 될 수있는 다른 하위 시스템) 및 포트 전달 만 지원됩니다. 마크에서 주석에 언급 한 바와 같이

  • 전화 메일을 일으키는 일부 서버 측 쉘 명령이 전송 될 :

    그래서, 당신은 기본적으로이 옵션이 있습니다. shell channel을 사용합니다.

  • 서버 포워딩을 사용하여 서버 호스트 (또는 거기에서 메일을 수락하는 모든 호스트)의 SMTP 서버에 액세스합니다.

    당신이 JSch를 사용하는 것과 같은 프로그램에서 보내려면

    이있다 실제로 대신 단순히 클라이언트 측 포트 포워딩을 수행합니다 direct-tcpip channel를 사용할 필요 없으며, 연결하기 전에 호스트와 포트 특성 을 설정합니다.

    그런 다음 SMTP 프로토콜을 직접 구현하거나 SMTP를 지원하는 다른 라이브러리를 사용해야합니다. (JavaMail에서이 작업을 수행 할 수 있다고 가정하지만 JSch를 터널로 사용하도록 JSch를 구성하는 방법을 탐색하지는 않았습니다.)

관련 문제