这是我的代码:
MimeMessage mail = new MimeMessage(session);
mail.setFrom(from);
MimeMultipart multipart = new MimeMultipart("related");
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(bodyText, "text/html");
multipart.addBodyPart(htmlPart);
MimeBodyPart imgPart=new MimeBodyPart();
String path = "/ivr/imagelogos/accenture.jpg";
DataSource ds=new FileDataSource(path);
imgPart.setDataHandler(new DataHandler(ds));
imgPart.setHeader("Content-ID","the-img-1");
multipart.addBodyPart(imgPart);
mail.setContent(multipart);
mail.setSentDate(new Date());
mail.setHeader("X-Mailer", "ALS Notifier Build 1.0.0.10");
// send the message
Transport.send(mail);
代码正在unix框上运行 - 图像路径基于unix文件路径。
运行代码后,我收到此错误:
IOException while sending message
javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.FileNotFoundException: /ivr/imagelogos/accenture.jpg (No such file or directory)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
答案 0 :(得分:2)
听起来像/ivr/imagelogos/accenture.jpg文件不存在。你确定这是正确的道路吗?也许它应该是相对于其他一些路径?如果确实存在,运行Java应用程序的用户是否具有读取权限?
答案 1 :(得分:1)
Img src=
是仅插入一些图像的最有效方式,否则您可能会发现为多个图像定义数组很有用/有帮助。