public void sendMailWithPx() {
try {
Process p = Runtime.getRuntime().exec(new String[]{
getPathSendMail(),
"-t"
});
String base64File = encodeFileToBase64Binary("/Users/jacye/Downloads/test.pdf");//base64 file
try (OutputStreamWriter osw = new OutputStreamWriter(p.getOutputStream(), "UTF8")) {
osw.write("Content-Type: application/pdf\n");
osw.write("From: yourmailtest@testmail.com\n");
osw.write("To: yourmailtest@testmail.com\n");
osw.write("Subject: Test send mmail\n");
osw.write("CC: yourmailtest@testmail.com\n");
osw.write("BCC: yourmailtest@testmail.com\n");
osw.write("Content-Disposition: attachment; filename=test.pdf");
osw.write("\n");
osw.write("Content-Transfer-Encoding: base64");
osw.write("\n");
osw.write(base64File);
osw.write("this is body");
}
p.waitFor();
} catch (IOException | InterruptedException e) {
log.error(null, e);
}
}
private String getPathSendMail() throws IOException {
Properties prop = new Properties();
try (InputStream input = getClass().getClassLoader().getResourceAsStream(CONFIG_FILE)) {
prop.load(input);
return prop.getProperty("sendmail.path");
}
}
我发送附件和正文的邮件,但我没有接收正文。
如何使用正文和附件发送邮件?
答案 0 :(得分:1)
如果您需要发送包含正文和附件的邮件,则必须将其作为MIME Message发送。 您发送的邮件只有附件(PDF)。 我想你可以找到"这是身体"文本作为PDF的一部分,即使它可能无法由PDF查看器呈现。
一个简单的MIME Message看起来如下
来自:John Doe
MIME版本:1.0
内容类型:
多部分/混合; boundary =" XXXXboundary text"这是MIME格式的多部分邮件。
- XXXXboundary text Content-Type:text / plain
这是正文
- XXXXboundary text Content-Type:text / plain;内容 - 处理:附件; 文件名="的test.txt"
这是附件文本
- XXXXboundary text -