【问题标题】:Getting server to send mail via SSH让服务器通过 SSH 发送邮件
【发布时间】:2011-09-15 00:42:36
【问题描述】:

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

我已经设置了基础知识(在 Android 上使用 jsch)。但我想实现 PHP mail() 函数的等价物。当文件上传时,原来我的PHP文件会自动从服务器发送一封邮件到某个地址。

我正在努力寻找一种在服务器上的外壳中实现此功能的方法。那么问题来了,如何在 SSH 中自动从服务器发送电子邮件?

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

【问题讨论】:

  • 什么服务器操作系统? Linux?起点:mail
  • echo 'file is here' | mail user@example.com -s "You've got file!"

标签: php email ssh jsch


【解决方案1】:

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

所以,您基本上有以下选择:

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

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

    如果你想从使用 JSch 的同一个程序发送,实际上不需要做客户端 端口转发,而是简单地使用direct-tcpip channel,并设置其主机和端口属性 连接之前。

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

【讨论】:

    猜你喜欢
    • 2012-11-19
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多