关于JAVA中使用Runtime.getRuntime().exec() 调用Linux的mutt发送邮件

最近需要做一个在JAVA中监测目录下是否有新文件产生,如果有的话使用Linux指令发送邮件,
使用mutt发送邮件的指令如下

echo "14:07" | mutt -a /home/pi/test.jpg -- 1111111@qq.com

意思为发送内容为“14:07”,并且添加附件test.jpg发送到1111111@qq.com这个邮箱。

经过测试,这句话单独在Linux系统下运行没有问题,也成功发送接收到。
但是调用Runtime.getRuntime().exec() 的时候不行
经查找是因为使用了管道的原因,需要添加/bin/sh -c 作为脚本去执行,但是却无法成功发送。
系统反馈无法发送此邮件。

将上述的代码作为sh脚本写入运行,提示子进程已经结束,邮件发送失败。猜想是由于mutt发送需要时间较长,sh已经运行结束,导致进程提前结束无法发送成功
但是如果使用sleep的话,会造成休眠,在脚本后面加上wait也没用。。。。

再次提出问题,如何在java代码中调用Linux指令的mutt发送邮件(有管道)

java代码中运行Linux指令代码如下:

public static void executeLinuxCmd(String[] cmd) {

     InputStream in = null;
     String result = null;
     try {
         Process pro = Runtime.getRuntime().exec(cmd);
         pro.waitFor();
         in = pro.getInputStream();
         BufferedReader read = new BufferedReader(new InputStreamReader(in));
         while((result = read.readLine())!=null) {
             System.out.println(result);
         }
     } catch (IOException e) {
         e.printStackTrace();
     } catch (InterruptedException e) {
         e.printStackTrace();
     }

}

调用executeLinuxCmd的代码如下(监测部分省略,cmd指令输出过,确定正确)
String path2=path + "/" + event.context() ;
String cmd="echo "+"\"hello hello\""+"|mutt -a "+path2+" -- 1111111@qq.com";
String[] str={"/bin/sh","-c",cmd};
executeLinuxCmd(str);
System.out.println(cmd);

监测成功创建文件,并且发送,然后显示

无法发送此信件。
echo "hello hello"|mutt -a /home/pi/this_is_test/wenjian -- 1111111@qq.com

折腾了2天了,求大佬指导一下,感激不尽