javaMail接收附件的问题 你的这个问题最好找版主wjmmml来解决,wjmmml是一个JAVAMAIL的绝对高手! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import javax.mail.*;import javax.mail.internet.*;import java.io.*;import java.util.*;public class ReadMail{ public static void main(String[] args) throws NoSuchProviderException,MessagingException,IOException { //if(args.length!=3)return; //String host = args[0]; //String user = args[1]; //String pass = args[2]; String host = "mail.163.com"; String user = "user"; String pass = "pass"; Properties props = new Properties(); Session session = Session.getDefaultInstance(props,null);// session.setDebug(true); Store mailbox = session.getStore("pop3"); mailbox.connect(host,user,pass); Folder inbox = mailbox.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); Message[] messages = inbox.getMessages(); for(int i = 0 ; i < messages.length ; i++){ Flags.Flag seen = Flags.Flag.SEEN; parseMail(messages[i]); messages[i].setFlag(seen,true); } } public static void parseMail(Message message) throws MessagingException,IOException { if(message.isMimeType("text/plain")){ System.out.println(message.getContentType()); System.out.print(message.getContent()); System.out.println(); System.out.println("================================"); }else if(message.isMimeType("multipart/*")){ Multipart multipart = (Multipart)message.getContent(); int k = multipart.getCount(); for(int i = 0;i<k;i++){ BodyPart part = multipart.getBodyPart(i);// if(part.getContentType().equals("text/plain")){InputStream in = part.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(in,"gb2312"));String line;while((line = br.readLine())!=null) System.out.println(line); //System.out.println(part.getContentType()); //System.out.print(part.getContent()); System.out.println(); System.out.println("-------------------------------"); //}else{ // System.out.println("other contentType"); // System.out.println("-------------------------------");// } } System.out.println("=================================="); }else{ System.out.println("other contentType"); System.out.println("================================="); } }}如果邮件中有附件的话,邮件MIME类型是multipart/*,content是MultiPart,MultiPart里包含着附件,要将这些附件分解出来。上面只是分解了text 正则表达式字符串中间任意匹配 按顺序从list中取出值的问题 关于三目运算符的问题~ 能否让一个虚拟机实例里的运行的应用程序所调用的类运行在另一个虚拟机实例里? 关于args的问题 新手 菜鸟提问: 用什么语句实现删除文件功能? 有谁想过,nba常规赛的赛程表编排的算法? 有什莫parser可以解析TSV-tab separated 文件吗? 谁有好的办法? 各位大虾能不能指教一下JTree的用法,谢谢 如何让jtable中每行能用上不同的背景色 一个关于struts的简单问题(up有分)
import javax.mail.internet.*;
import java.io.*;
import java.util.*;public class ReadMail{
public static void main(String[] args) throws NoSuchProviderException,MessagingException,IOException
{
//if(args.length!=3)return;
//String host = args[0];
//String user = args[1];
//String pass = args[2];
String host = "mail.163.com";
String user = "user";
String pass = "pass";
Properties props = new Properties();
Session session = Session.getDefaultInstance(props,null);
// session.setDebug(true);
Store mailbox = session.getStore("pop3");
mailbox.connect(host,user,pass);
Folder inbox = mailbox.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
for(int i = 0 ; i < messages.length ; i++){
Flags.Flag seen = Flags.Flag.SEEN;
parseMail(messages[i]);
messages[i].setFlag(seen,true);
}
}
public static void parseMail(Message message) throws MessagingException,IOException
{
if(message.isMimeType("text/plain")){
System.out.println(message.getContentType());
System.out.print(message.getContent());
System.out.println();
System.out.println("================================");
}else if(message.isMimeType("multipart/*")){
Multipart multipart = (Multipart)message.getContent();
int k = multipart.getCount();
for(int i = 0;i<k;i++){
BodyPart part = multipart.getBodyPart(i);
// if(part.getContentType().equals("text/plain")){
InputStream in = part.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in,"gb2312"));
String line;
while((line = br.readLine())!=null)
System.out.println(line);
//System.out.println(part.getContentType());
//System.out.print(part.getContent());
System.out.println();
System.out.println("-------------------------------");
//}else{
// System.out.println("other contentType");
// System.out.println("-------------------------------");
// }
}
System.out.println("==================================");
}else{
System.out.println("other contentType");
System.out.println("=================================");
}
}
}如果邮件中有附件的话,邮件MIME类型是multipart/*,content是MultiPart,MultiPart里包含着附件,要将这些附件分解出来。上面只是分解了text