Javamail邮件解析如何显示文本框内的图片

发布于 2021-11-19 07:41:05 字数 381 浏览 830 评论 4

@红薯 你好,想跟你请教个问题:这个问题之前也被问过很多次了,但是依旧没有给出答案,希望你能帮帮忙解决一下,万分感谢!就是邮件文本框包含图片,但是通过解析出来不能显示图片,得出的是类似这样的<img src='cid:xxxxx'>,但是复制网页上的图片可以显示,看到之前你回复的一个贴子说是可以通过标识转换可以达到效果,但是我没有实现。你说一般在解析到 Multipart 部分的时候都会有一个标识对应这个cid的,首先把 Multipart 保存到图片文件,然后生成一个对应的图片URL地址,用来替换这个cid 。但是如何找到这个cid的图片呢?请赐教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

本宫微胖 2021-11-25 10:31:10

求解决方法啊

别再吹冷风 2021-11-25 09:21:39

我的问题已经解决,谢谢大家的帮忙!

一笔一画续写前缘 2021-11-25 05:25:21

这个不难,下面是可以运行的例子:

public void  testImageMail(){

//创建和环境有关的Session对象.  该session对象中包含了连接邮件服务器的地址.. 端口.. 协议

 Properties  properties = new Properties();

 //指定发送的协议

 properties.setProperty("mail.transport.protocol", "smtp");

 //指定邮件服务器的地址

 properties.setProperty("mail.host", "127.0.0.1");

 //通过javamail发送邮件的时候,会把具体的发送命令打印出来

 properties.setProperty("mail.debug", "true");

 Session  session = Session.getDefaultInstance(properties);

  //创建一个代表一封邮件的Message对象

 Message  message = new MimeMessage(session);

 //设置发件人...

 try {

message.setFrom(new  InternetAddress("xxxxxx"));

/** BCC:密送CC:抄送To:发送 */

message.setRecipient(RecipientType.TO, new InternetAddress("xxxxxx"));

//设置邮件的主题

message.setSubject("这是一个简单的邮件");

Multipart  multipart = new MimeMultipart("mixed");

//创建一个装显示图片的html

MimeBodyPart  html = new MimeBodyPart();

//要使用cid来指定具体的资源id

html.setContent("<img src='cid:xxxxxxx'>", "text/html");

//创建一个图片的mimebodypart

MimeBodyPart  image = new MimeBodyPart();

//将一个图片做具体的数据出过来

image.setDataHandler(new DataHandler(new FileDataSource(new File("F:\xxx.gif"))));

image.setContentID("xxxxxxx");

multipart.addBodyPart(html);

multipart.addBodyPart(image);

//设置一个复杂类型的邮件内容

message.setContent(multipart);

//可以通过Session对象找得到发送对象Transport...

Transport  transport = session.getTransport();

//通过发送对象去连接邮件服务器... 提供链接服务器的用户名而不是邮件的地址,不带@符号的

transport.connect("xxxxxx", "xxxxxx");

//连接上后发送邮件(Message),发送给指定的地址

transport.sendMessage(message, message.getAllRecipients());

//关闭连接

transport.close();

 } catch (Exception e) {

e.printStackTrace();

}

}

酒几许 2021-11-24 19:40:47

不是很明白,纯帮顶

@红薯 真万能系列

@虫虫 你的分身哦

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文