【问题标题】:Adding image to email via Java mail通过 Java 邮件将图像添加到电子邮件
【发布时间】: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 元素。

标签: java email


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2014-09-28
      • 2019-04-16
      • 1970-01-01
      • 2018-09-20
      • 2017-12-31
      相关资源
      最近更新 更多