javamail 如何接收html(复合邮件)?(有好的方案我可以在加分,我还有好几千分呢)

sinbo 2004-11-04 11:34:41
大家好,小弟现在在做一个项目,实现的是b/s结构的outlook 现在有如下问题,希望能帮忙解决:
1:发送html的邮件,邮件支持信纸,也就是在邮件中要有图片的,这个问题我看了有解决方法,但是希望大家大给点意见如何解决.
2:接受来自任何邮件服务器的邮件,其中比较不好解决的就是html邮件,因为这样的邮件里面有html的邮件,而且邮件中还有图片,我现在不知道我怎么把邮件下载下来,保存到我的数据库中,而且还要能正确显示html邮件中的图片.也就是能显示信纸.(这些操作就象outlook foxmail那样,离线也可以显示漂亮的信纸,我的程序就是web的outlook,foxmail)
以上的问题我并不希望大家给我具体的代码,只要能提出解决方案就好.(但是如果真的有代码,那是最好的 :) ).
希望大家能帮忙,谢谢.

...全文
257 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinbo 2004-11-05
  • 打赏
  • 举报
回复
哦,原来是这样呀,但是我接收附件的时候总是不能接收html中的图片,如果可以的话我想看看你写的关于附件的接收和html的接收的程序,我知道这个好象有点过分,但是我新毕业的,这个东西是公司考验我的,所以希望大哥能帮帮,小弟在这里先谢谢了.
pigo 2004-11-05
  • 打赏
  • 举报
回复


/**
* 【解析附件】
*/
public static void praseMailAttach(Part part, MailInfo mailInfo) throws
Exception {
String fileName = "";
if (part.isMimeType("multipart/*")) {
logger.debug(part.getFileName() + "part.isMimeType( ultipart/* )");
Multipart mp = (Multipart) part.getContent();
for (int i = 0; i < mp.getCount(); i++) {
BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if ((disposition != null) &&
((disposition.equals(Part.ATTACHMENT)) ||
(disposition.equals(Part.INLINE)))) {
fileName = mpart.getFileName();
if (fileName.toLowerCase().indexOf("gb2312") != -1) {
fileName = MimeUtility.decodeText(fileName);
}
//保存附件

} else if (mpart.isMimeType("multipart/*")) {
praseMailAttach(mpart, mailInfo);
} else {
//不知道类型
fileName = mpart.getFileName();
if ((fileName != null)
//&& (fileName.toLowerCase().indexOf("GB2312") != -1)
) {
fileName = MimeUtility.decodeText(fileName);
////保存附件
//saveattache(fileName, mpart.getInputStream());
}
}
}
} else if (part.isMimeType("message/rfc822")) {
praseMailAttach((Part) part.getContent(), mailInfo);
} else {
//保存附件

}
}
}

pigo 2004-11-05
  • 打赏
  • 举报
回复


接收是没有问题,重点在于邮件内容的解析。

先把解析出来的附件文件保存到指定的地方。

如果邮件内容是包含网页形式的,解析出来的文本中有

src="cid:xxxxxxxxx"的字样
xxxxxxxxx是附件的ContentID.

把它replaceAll();

this.setContent(this.getContent().replaceAll("cid:" +
ma.getContentId(), "yourimagpath"));


生成新的邮件内容。


debug148 2004-11-05
  • 打赏
  • 举报
回复
ding
sinbo 2004-11-05
  • 打赏
  • 举报
回复
如果其他的兄弟知道也要帮助小弟呀!!
我在这里谢谢先了.
alaal 2004-11-04
  • 打赏
  • 举报
回复
没有做过,只是做过简单的收发邮件,你看看这个对你是否有帮助

http://dev.csdn.net/develop/article/21/21228.shtm
debug148 2004-11-04
  • 打赏
  • 举报
回复
ding
sinbo 2004-11-04
  • 打赏
  • 举报
回复
55555555555
sinbo 2004-11-04
  • 打赏
  • 举报
回复
我这个安全自然我会处理的,而且我的这个用途并不是针对公网用户的,我是给企业内部使用,你要参考yahoo.sina,sohu 的,我怎么能看到呢,我现在是想知道我怎么处理html邮件的呀?
denisu 2004-11-04
  • 打赏
  • 举报
回复
1,参考参考yahoo.sina.sohu的电子邮件系统.
2,楼主要做的web形式的outlook,但是不知道你考虑过安全性没有?
为了离线浏览,outlook把邮件内容下载到本地,你把邮件内容下载到你的邮件服务器?那不是所有人的邮件都被你偷偷的保留了一份?你如何控制安全性?
sinbo 2004-11-04
  • 打赏
  • 举报
回复
楼上的兄弟,你看来是没有做过,你知道保存的操作,ie给我们做了多少事情吗? 假如你就是实现ie的保存操作,就很麻烦拉,我想没有半个月的时候是写不完的.
seasun668 2004-11-04
  • 打赏
  • 举报
回复
不知道你保存过网页没有,保存到本地的话,我们在本地机器打开也是可以见到图片的。其实邮件也是这个道理,你好好想想就应该可以解决的了。
sinbo 2004-11-04
  • 打赏
  • 举报
回复
兄弟们帮忙呀,项目要结项了!!!!
javaoaout 2004-11-04
  • 打赏
  • 举报
回复
国内有家公司做就是做的你说的这个,做的不错
你可以看看,我找一下地址

一时找不到

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧