<分区>
我正在尝试从 Java 发送带有 Linux 命令的电子邮件,我承认我对 Linux 了解不多,但我想我已经尝试了所有方法,但我真的很困惑,如果有人能为它提供一些启示会很棒
我将应用程序导出到 war 文件并将其上传到 linux 服务器 (CentOS)
所以这就是我正在做的:我正在使用浏览器从 servlet 触发代码
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String cmd = "mail -s \"Test Email\" my@email.com < /usr/share/apache-tomcat-7.0.42/webapps/slots_dashboard/alert_mail.txt";
//String cmd = "whoami"; //returns tomcat
ProcessBuilder pb = new ProcessBuilder(cmd);
Process proc = pb.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
String s = null;
while ((s = stdInput.readLine()) != null) {
resp.getWriter().println(s);
}
while ((s = stdError.readLine()) != null) {
resp.getWriter().println(s);
}
}
我得到的错误是: HTTP 状态 500 - 无法运行程序“mail -s “测试电子邮件”my@email.com
如果我将命令更改为 whoami 我在响应中得到 tomcat,我什至去了服务器计算机并从那里尝试了命令并且没有问题。伙计们,请帮忙:(