为什么我用javamail写的程序,总是收不到邮件的正文内容?

manbeing1 2005-09-10 09:40:21
我看了很长时间,看不出哪里错。但是getmailcontent 函数就是返回不了邮件正文的内容,请高手看看。先谢谢了。

import javax.mail.*;
import java.util.Properties;
import java.io.*;
import javax.mail.internet.*;
public class email{
static Store s;
static Folder f;
public static Message[] getmessage()throws Exception{
.....................
}

public static String getmailfrom(Message m) throws Exception{
...........................

}


public static String getmailcontent(Message m) throws Exception{
Part messagepart=m;
Object content = messagepart.getContent();
String contentstring="";
if(content instanceof Multipart){
messagepart = ((Multipart)content).getBodyPart(0);
String contentType = messagepart.getContentType();
if(contentType.startsWith("text/plain") || contentType.startsWith("text/html")) {
InputStream is = messagepart.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String thisLine = reader.readLine();
while(thisLine != null)
{
contentstring=contentstring + reader.readLine();
}
else if(content instanceof String){
contentstring=content.toString();
}
}

return "Content: "+contentstring;
}

public static void main(String[] args){
try{

Message[] message=email.getmessage();
System.out.println(email.getmailfrom(message[1]));
System.out.println(email.getmaildate(message[1]));
System.out.println(email.getmailsubject(message[1]));
System.out.println(email.getmailcontent(message[1]));
}

catch (Exception e) {
e.printStackTrace();
}
}
}


...全文
162 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShadowBlade 2005-09-10
  • 打赏
  • 举报
回复
if(contentType.startsWith("text/plain") || contentType.startsWith("text/html"))

邮件正文是以这两个开头的么?
 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。   虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。   JavaMail是可选包,因此如果需要使用的话你需要首先从java.sun.com下载。目前最新版本是JavaMail1.4,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改 CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext下。这样JavaMail就安装好了。   JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。   实例:

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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