通过Java邮件将图像添加到电子邮件

时间:2009-09-14 16:40:28

标签: java email

这是我的代码:

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)

2 个答案:

答案 0 :(得分:2)

听起来像/ivr/imagelogos/accenture.jpg文件不存在。你确定这是正确的道路吗?也许它应该是相对于其他一些路径?如果确实存在,运行Java应用程序的用户是否具有读取权限?

答案 1 :(得分:1)

Img src=是仅插入一些图像的最有效方式,否则您可能会发现为多个图像定义数组很有用/有帮助。