我需要在 bash 中使用 sendmail 以 Java 发送我的电子邮件。由于配置重复,我无法使用 javamail...
package fr.thales.edf.reportEmailAcrAcq.email;
import java.io.IOException;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
public class SendHTMLEmail {
private static final String SENDMAIL = "sendmail -R hdrs -N never -t -v < ";
private static final Logger LOGGER = Logger.getLogger(SendHTMLEmail.class
.getName());
private String fileName;
public SendHTMLEmail(String fileName) {
this.fileName = fileName;
}
public void sendMail() {
String command = SENDMAIL + fileName;
try {
Runtime r = Runtime.getRuntime();
LOGGER.log(Level.INFO, "Envoi de la commande: " + command);
Process p = r.exec(command);
p.waitFor();
LOGGER.log(Level.INFO,
"Résultat de l'envoi de l'e-mail : " + p.getOutputStream());
} catch (InterruptedException ex) {
LOGGER.log(Level.FATAL, ex.getMessage());
} catch (IOException ex) {
LOGGER.log(Level.FATAL, ex.getMessage());
}
}
}
这是我的日志文件:
INFO - Command: sendmail -R hdrs -N never -t -v < ACR_20130111_100744.html
但是我的程序从不发送电子邮件,并且 sendmail 命令仍在运行(即使在 2 小时后)。另一件事,当我在 bash 脚本中使用相同的命令时,它会在 5 分钟内运行......