【发布时间】:2009-09-14 16:40:27
【问题描述】:
这是我的代码:
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)
【问题讨论】:
-
您能否说明您是要在电子邮件中嵌入图像,还是(更有可能)创建包含图像引用的 HTML 电子邮件?如果是第二个,则不需要将图像实际放入电子邮件中。您只需要某处服务器上图像的公共 URL,并在您的 HTML 中使用该 src 创建一个 img 元素。