正 文

用Java建立WEB邮件系统


www.7dspace.com  更新日期:2006-5-7 6:55:41  七度空间


即使图像是以附件包含在邮件中,在点击链接时即会出现,但它们并不出现在页面中。这是因为图像在HTML邮件中提及的方式引起的,在HTML邮件中,图像以附件形式存在。除了文件名,每个附件有一个生成的content-id,它在页面的HTML语言中被提及。邮件用户使用些content-id 来了解哪个附件正被提及。但因为我们把邮件按文件名分解成单独的网页,我们首先需要从附件中恢复content-id,并用它来修改信息的HTML文本。在RenderableMessage.java中,当解析一个附件时,我们需要阅读content-id,如果它存在(也可能不存在),用 Attachment作一下标记。content-id是一个多种多样的文件头,所以我们用getHeader()来询问它:

String[] headers=part.getHeader("Content-id");
if(headers!=null && headers.length>0) {
attachment.setContentid(headers[0]);
}

content-id在IMG scr属性中以cid:||出现。通过它,我们可以处理MailServlet中的主文本,将提及content-id改为提及文件名。我们在“bodytext=msg.getBodyText()”后增加了这些代码:

for(int i=0;i")) {
cid="cid:"+cidraw.substring(1,cidraw.length()-1);
} else {
cid="cid:"+cidraw;
}
bodytext=bodytext.replaceAll(cid,url);
}
}

注意当我们建立cid字符串时,我们必须了解邮件发送器是否用“<”和“>”来包含content-id。一些邮件发送这样做,一些不这样。现在如果我们再运行服务器,我们可看到下面的内嵌图像:

An HTML message in MailPage, not working

当然,这只是一个简单的例子,并且所有简单的简化的例子都有许多错误。第一个问题是每次访问页面,邮件都被重新恢复。这几乎没有什么效率,最简单的选项是控制呼叫getMail()的频率。第二个问题是我们没有对邮件的主文本作任何加工处理,所以一些无赖HTML代码有可能渗透进来,引起页面的混乱。

如果你想着手了解更多的JavaMail实例,你只须去JavaMail软件包的演示(demo)目录,那里有大量的API用法实例,包括一个更为复杂的通用邮件阅读servlet。

在此下载本教程的源代码

DJ Walker-Morgan是一名开发人员咨询师,专长是Java和用户对用户的消息发送和远程会议技术。

2页,页码:[1] [2] 

上一篇:如何在Linux系统中安装Java
下一篇:用JavaScript脚本将当地时间转换成其它时区
用Java建立WEB邮件系统 作者:DJ Walker-Morgan 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐