让服务器通过SSH发送邮件


Getting server to send mail via SSH

我写了一个程序(在Android,客户端和PHP,服务器端)通过HTTP上传文件到服务器。由于各种原因,我不得不更改系统,以便在SSH中完成所有工作(为了安全等原因)。

我有基本设置(在Android上使用jsch)。但是我想实现与PHP mail()函数等价的功能。当文件上传时,最初我的PHP文件会自动从服务器发送邮件到某个地址。

我正在努力寻找一种方法来实现这在服务器上的shell。问题是,如何在SSH中自动从服务器发送电子邮件?

编辑:忘了说服务器是CentOS

SSH本身没有邮件功能——它只支持shell访问(可能包括X和SSH代理转发)、文件传输(或可能集成到服务器中的其他子系统)和端口转发。

所以,你基本上有这些选项:
  • 调用一些服务器端shell命令来发送邮件,正如Marc在评论中提到的那样。这将使用shell通道。

  • 使用端口转发访问服务器主机上的SMTP服务器(或任何接收邮件的主机)

    如果您想从使用JSch的相同程序发送,则不需要实际执行客户端操作端口转发,而不是简单地使用direct-tcpip通道,并设置其主机和端口属性在连接之前。

    那么你必须自己实现SMTP协议,或者使用任何其他支持SMTP的库。(我认为JavaMail可以做到这一点,但我没有探索如何配置它以使用JSch作为隧道。)