让服务器通过SSH发送邮件

时间:2011-09-14 15:43:39

标签: php email ssh jsch

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

我已经设置了基础(在Android上使用jsch)。但我想实现相当于PHP mail()函数。上传文件时,最初我的PHP文件会自动将邮件从服务器发送到某个地址。

我很难找到在服务器上的shell中实现它的方法。所以问题是,如何在SSH中自动从服务器发送电子邮件?

编辑: 忘了提服务器是CentOS。

1 个答案:

答案 0 :(得分:0)

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

所以,你基本上有这些选择:

  • 调用一些导致邮件发送的服务器端shell命令,如Marc的评论中所述。 这将使用shell channel

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

    如果要从使用JSch的同一程序发送,则无需实际进行客户端操作 端口转发,而只是使用direct-tcpip channel,并设置其主机和端口属性 在连接之前。

    然后,您必须自己实施SMTP协议,或使用支持SMTP的任何其他库。 (我想JavaMail可以做到这一点,但我没有探索如何配置它以将JSch用作隧道。)